雄辩的插入或更新查询

时间:2017-05-09 09:08:13

标签: laravel

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

我正在使用eloquent插入

  $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的情况下插入或更新(首先可能不存在)。

1 个答案:

答案 0 :(得分:1)

那么你可以使用firstOrNew

既然你说你的基础是你想检查表中是否已经存在user_id那么你将它用作条件而不是id

首先 - >你使用firstOrNew     这个功能是

  1. 检查条件是否存在然后如果它存在则只返回第一个现有数据

  2. 如果不只是插入新数据并返回新的插入数据

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

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