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

Susan Sarandon
發布: 2024-10-20 08:47:01
原創
432 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!