Laravel 8 firstOrCreate/ firstOrNew

2021-07-19 11:31 更新

這里有兩個你可能用來批量賦值的方法: firstOrCreatefirstOrNewfirstOrCreate 方法會通過給定的鍵 / 值對來匹配數(shù)據(jù)庫中的數(shù)據(jù)。如果在數(shù)據(jù)庫中找不到模型,則將插入一條記錄,其中包含第一個參數(shù)的屬性以及可選的第二個參數(shù)的屬性。

firstOrNew 方法像 firstOrCreate 方法一樣嘗試通過給定的屬性查找數(shù)據(jù)庫中的記錄。不過,如果 firstOrNew 方法找不到對應(yīng)的模型,會返回一個新的模型實例。注意 firstOrNew 返回的模型實例尚未保存到數(shù)據(jù)庫中,你需要手動調(diào)用 save 方法來保存:

// 通過 name 檢索航班,不存在則創(chuàng)建...
$flight = App\Models\Flight::firstOrCreate(['name' => 'Flight 10']);

// 通過 name 檢索航班,或使用 name 和 delayed 屬性和 arrival_time 屬性創(chuàng)建...
$flight = App\Models\Flight::firstOrCreate(
    ['name' => 'Flight 10'],
    ['delayed' => 1, 'arrival_time' => '11:30']
);

// 通過 name 檢索航班,不存在則創(chuàng)建一個實例...
$flight = App\Models\Flight::firstOrNew(['name' => 'Flight 10']);

// 通過 name 檢索航班,或使用 name 和 delayed 屬性和 arrival_time 屬性創(chuàng)建一個模型實例...
$flight = App\Models\Flight::firstOrNew(
    ['name' => 'Flight 10'],
    ['delayed' => 1, 'arrival_time' => '11:30']
); 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號