使用数据库时,通常需要插入不存在的新记录或更新现有记录如果是的话。在 Laravel 的 Eloquent ORM 中,可以使用 firstOrNew() 方法简洁地完成此操作。
$model = Model::firstOrNew($attributes);
如果数据库中已存在该记录,则firstOrNew()方法将返回该模型的实例。然后可以修改其属性并使用 save() 方法保存。
<code class="php">$user = User::firstOrNew(array('name' => Input::get('name'))); $user->foo = Input::get('foo'); $user->save();</code>
如果数据库中不存在该记录,则使用firstOrNew()方法将创建具有指定属性的模型的新实例。然后,当您调用 save() 方法时,它会将记录插入数据库。
<code class="php">// Insert new record into database</code>
在提供的代码片段中,还使用以下方法插入如果记录不存在,则更新记录;如果存在,则更新现有记录:
<code class="php">$shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first(); if ($shopOwner == null) { // Insert new record into database } else { // Update the existing record }</code>
此方法首先查询数据库以检索现有记录。如果没有找到记录,则插入新记录。否则,现有记录将被更新。
有关firstOrNew() 方法的最新信息,请参阅下面链接的更新文档。
[更新的文档链接](https://laravel.com/docs/8.x/eloquent)
以上是如何使用 Eloquent 的 firstOrNew() 方法高效插入或更新记录?的详细内容。更多信息请关注PHP中文网其他相关文章!