Laravel 雄辩的插入或更新查询

Laravel 雄辩的插入或更新查询,laravel,Laravel,我有一个正在尝试更新的设置表。我的表是空的,我需要在其中插入一些数据 我用雄辩来插入 $s = new Settings; $s->language = request('language'); $s->sitename = request('sitename'); $s->user_id = Auth::id(); $s->save(); return redirect('settings'); 我遇到过这个函数 $se = Setting

我有一个正在尝试更新的设置表。我的表是空的,我需要在其中插入一些数据

我用雄辩来插入

  $s = new Settings;

  $s->language = request('language');
  $s->sitename = request('sitename');
  $s->user_id = Auth::id();
  $s->save();

  return redirect('settings');
我遇到过这个函数

$se = Settings::findOrNew($id); // if exist then update else insert
findOrNew要求我在保存之前知道id


如何在不知道可能根本不存在的ID的情况下插入或更新。因此,您可以使用firstOrNew

既然您说您的基础是要检查该用户id是否已经存在于表中,那个么您就使用它作为条件而不是id

首先->使用firstOrNew 此函数的作用是

检查条件是否存在,如果存在,则只返回第一个现有数据

如果不是,请插入新数据并返回新的插入数据

$s = User::firstOrNew(array('user_id' => Auth::id()));
然后->在此之后,您现在可以使用该对象并在其上执行您想要执行的操作

    $s->language = request('language');
    $s->sitename = request('sitename');
    $s->save();

您的条件依据是用户id?是的,就是它。