首頁  >  文章  >  後端開發  >  如何使用 Eloquent 的 firstOrNew() 方法有效率地插入或更新記錄?

如何使用 Eloquent 的 firstOrNew() 方法有效率地插入或更新記錄?

Susan Sarandon
Susan Sarandon原創
2024-10-20 08:47:01437瀏覽

How to Insert or Update Records Efficiently Using Eloquent's firstOrNew() Method?

在 Laravel Eloquent 中插入或更新記錄

使用資料庫時,通常需要插入不存在的新記錄或更新現有記錄如果是的話。在 Laravel 的 Eloquent ORM 中,可以使用 firstOrNew() 方法簡潔地完成此操作。

語法

$model = Model::firstOrNew($attributes);
  • $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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn