Laravel 5.1 firstOrNew

时间:2015-11-26 14:28:50

标签: php laravel laravel-5

我希望能够在数据库中插入新记录(如果它尚不存在)。如果确实存在,我想用新信息更新现有记录。

基本上,我想检查它是否存在的字段称为“令牌”。

所以,我尝试过这样的事情:

$this->timesheet->firstOrNew(['token' => '12345'])->save();

这成功创建了新行。

如何传入我想插入/更新的其他字段?例如first_namelast_name

我可以这样做:

$this->timesheet->firstOrNew(['token' => '12345'])->update(['first_name' => 'Bob', 'last_name' => 'Smith'])->save();

2 个答案:

答案 0 :(得分:2)

使用firstOrNew,然后通过致电fillsave进行跟进:

$this->timesheet->firstOrNew(['token' => '12345'])
     ->fill(['first_name' => 'Bob', 'last_name' => 'Smith'])
     ->save();

答案 1 :(得分:1)

保存对象之前。填写您要保存的其他信息。

$timesheet = $this->timesheet->firstOrNew(['token' => '12345']);
$timesheet->fill(['first_name' => 'Bob', 'last_name' => 'Smith']);
$timesheet->save();