Laravel 8 firstOrCreate/ firstOrNew

2021-07-19 11:31 更新

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

firstOrNew 方法像 firstOrCreate 方法一樣嘗試通過給定的屬性查找數據庫中的記錄。不過,如果 firstOrNew 方法找不到對應的模型,會返回一個新的模型實例。注意 firstOrNew 返回的模型實例尚未保存到數據庫中,你需要手動調用 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']
); 
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號