1、insert:插入數據時,需要維護 created_at 和 updated_at字段,
2、save:無論插入或者更新,會自動維護,無需手動操作
//插入: public function store(Request $request) { $flight = new Flight; $flight->name = $request->name; $flight->save(); } //更新: $flight = App\Flight::find(1); $flight->name = 'New Flight Name'; $flight->save();
格式: Eloquent實例->save();
插入操作例子中,HTTP 請求的參數 name
賦值給了 App\Flight
模型實例的 name
屬性。調用 save
方法,一條記錄就會插入數據庫。created_at
和 updated_at
時間戳隨着 save
方法的調用,會自動維護,無需手動操作。
save
方法也可用於模型更新。更新模型時,需要檢索到它,然后設置模型屬性,再調用 save
方法。同樣地,updated_at
時間戳自動更新,無需手動操作:
3.update:更新操作,自動維護 updated_at字段
也可一並更新查詢到的多個模型。這個例子中,所有 active
和 destination
為 San Diego
的航班都被更新為延誤:
App\Flight::where('active', 1) ->where('destination', 'San Diego') ->update(['delayed' => 1]);
update
方法接受一個字段為鍵、更新數據為值的數組
4.create 自動維護 created_at 和 updated_at兩個字段
除了 save
和 saveMany
方法外,你還可以使用 create
方法。它接受一個屬性數組,同時會創建模型並插入到數據庫中。 還有, save
方法和 create
方法的不同之處在於, save
方法接受一個完整的 Eloquent 模型實例,而 create
則接受普通的 PHP 數組:
$post = App\Post::find(1); $comment = $post->comments()->create([ 'message' => 'A new comment.', ]);
{tip} 在使用
create
方法前,請務必確保查看過本文檔的 批量賦值 章節。
格式:create(【‘字段’=>值,組成的數組】);
參考連接: https://learnku.com/docs/laravel/5.6/eloquent-relationships/1404#3d967c