firstOrCreate in model

时间:2014-03-27 15:14:50

标签: laravel laravel-4 eloquent

我要么添加到我的表格中,要么编辑现有的行。

我已经查看过firstOrCreate但我似乎无法让它工作,它总是会创建一个新行。

return $this->firstOrCreate(array('id' => $input['id'], 'title' => $input['title'], 'sell' => $input['sell'], 'article' => $input['article'], 'thumb' => $input['thumb'], 'gallery' => $input['galleryData'], 'date' => $input['date'], 'published' => $input['published']));

当用户编辑标题时,标题会发生变化,有没有办法根据ID搜索表格,如果存在则更新,如果没有,则创建?

1 个答案:

答案 0 :(得分:2)

如果标题发生变化,那么使用此方法是不合逻辑的。您提到的方法检查具有所有给定规格的项目。

你应该做什么:

// find the item, given the ID
$item = Item::firstOrNew(array('id' => $input['id']));

// add the fields from your input
$item->title = $input['title'];
$item->sell  = $input['sell'];
$item->article = $input['article'];
$item->thumb = $input['thumb'];
$item->gallery = $input['galleryData'];
$item->date = $input['date'];
$item->published = $input['published'];

// Save the thing
$item->save();