使用 Laravel Eloquent 優化 CRUD 操作
在 Laravel 中使用資料庫時,插入或更新記錄是很常見的。為了實現這一點,開發人員經常求助於條件語句,在決定執行插入或更新之前檢查記錄是否存在。
firstOrNew() 方法
幸運的是, Eloquent 透過firstOrNew() 方法提供了更有效率的解決方案。此方法根據指定的條件檢查記錄是否存在,如果找到則傳回第一個符合的記錄;否則,它會建立模型的新實例。
用法範例
請考慮以下範例:
$shopOwner = ShopMeta::where('shopId', '=', $theID)
->where('metadataKey', '=', 2001)
->firstOrNew();
if ($shopOwner->exists) {
// Update the existing record
} else {
// Insert a new record
}
本範例中,firstOrNew()方法用於根據shopId和metadataKey尋找ShopMeta記錄。如果記錄存在,則執行 if 區塊,並更新現有記錄。否則,執行 else 區塊,並插入一筆新記錄。
擴充範例
這裡有一個更全面的範例,展示了firstOrNew()的強大功能:
$user = User::firstOrNew(array('name' => Input::get('name')));
$user->foo = Input::get('foo');
$user->save();
更新的文件
請注意,答案中提供的文件連結不再是最新的。對於最新版本的 Laravel,請參考以下文件:
[更新的 Laravel 文件](https://laravel.com/docs/8.x/eloquent)
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3