laravel insert 、save、update、create區(qū)別(總結(jié)二)
1、insert:插入數(shù)據(jù)時,需要維護?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 請求的參數(shù)?name?賦值給了?App\Flight?模型實例的?name?屬性。調(diào)用?save?方法,一條記錄就會插入數(shù)據(jù)庫。created_at?和?updated_at?時間戳隨著?save?方法的調(diào)用,會自動維護,無需手動操作。
save?方法也可用于模型更新。更新模型時,需要檢索到它,然后設置模型屬性,再調(diào)用?save?方法。同樣地,updated_at?時間戳自動更新,無需手動操作:
3.update:更新操作,自動維護 updated_at字段
也可一并更新查詢到的多個模型。這個例子中,所有?active?和?destination?為?San Diego?的航班都被更新為延誤:
App\Flight::where('active', 1)
->where('destination', 'San Diego')
->update(['delayed' => 1]);
update?方法接受一個字段為鍵、更新數(shù)據(jù)為值的數(shù)組
4.create 自動維護?created_at 和 updated_at兩個字段
除了?save?和?saveMany?方法外,你還可以使用?create?方法。它接受一個屬性數(shù)組,同時會創(chuàng)建模型并插入到數(shù)據(jù)庫中。 還有,?save?方法和?create?方法的不同之處在于,?save?方法接受一個完整的 Eloquent 模型實例,而?create?則接受普通的 PHP 數(shù)組:
$post = App\Post::find(1);
$comment = $post->comments()->create([
'message' => 'A new comment.',
]);
{tip} 在使用?create?方法前,請務必確保查看過本文檔的?批量賦值?章節(jié)。
格式:create(【‘字段’=>值,組成的數(shù)組】);
參考連接: https://learnku.com/docs/Laravel/5.6/eloquent-relationships/1404#3d967c
獲取更多知識講解微信搜索公眾號:[ 碼農(nóng)編程進階筆記]
公眾號直通車
Laravel 數(shù)據(jù)結(jié)構(gòu)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。