使用資料庫時,通常需要插入不存在的新記錄或更新現有記錄如果是的話。在 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中文網其他相關文章!