在Laravel 的資料庫工具包中,Eloquent 提供了一個種方便的方法來處理同時記錄插入和更新。這種方法省去了為這些操作編寫顯式程式碼的麻煩。
想像一個場景,您需要確定是否插入新記錄或根據特定條件的存在來更新現有條件。傳統上,這需要單獨檢查記錄是否存在以及後續的插入或更新查詢。
Laravel 的 Eloquent 引入了一種簡潔的方法來完成此任務:firstOrNew()。如提供的 PHP 程式碼片段所示:
此程式碼檢查 ShopMeta 表中是否有指定 shopId 和metadataKey 的記錄。如果沒有找到這樣的記錄,則傳回 null。
要繼續插入/更新過程:
如果 $shopOwner 是確實為null,可以插入新記錄。否則,可以更新現有記錄。
一個改進的解決方案,如「lu cip」所建議的,是利用firstOrNew()方法,它消除了需要進行條件檢查:
使用此更新的方法,如果存在指定名稱的記錄,則會檢索該記錄;否則,將建立一個新記錄。後續操作(例如,設定 foo)和保存記錄在單一 save() 呼叫下得到簡化。
以上是如何使用 Laravel Eloquent 的 firstOrNew() 方法壓縮資料庫作業?的詳細內容。更多資訊請關注PHP中文網其他相關文章!