Eloquentのsaveとupdateは処理が異なる
saveとupdateのちがい
update()は更新データとの差分を見ずに更新する。
save()は更新データとの差分を見て更新するかを決める。
例)Customerテーブルのnameを更新する
update()を使用した場合
<?php Customer::where('id', 1) ->update(['name' => $request->name]);
save()を使用した場合
<?php $customer = Customer::find(1) $customer->name = $request->name; $customer->save();
もし$request->nameが既存データと同じだった場合、
save()→updated_atが更新されない
update()→updated_atが更新される
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.phpのsaveメソッドを確認すると、データが存在している場合のみ、updateが実行されていることがわかる。