laravel使用save與update方法靈活操作updated_at欄位

楠柯一夢丶發表於2021-09-13

問題場景:
當預設使用框架中的時間操作欄位,created_at,updated_at,deleted_at欄位的時候,有得時候很靈活,例如新增,修改和刪除更新的時候不需要特別維護,很方便。但是有時候時候某一資料發生修改的時候,你可能期望updated_at不更新,例如:部落格點贊,你並不希望你的文章修改時間放生改變,這時候如何看待更新資料的save()與update()方法呢

一. save方法

$model = Model::find($id);
$model->field1  =  $value1; 
$model->timestamps = false;
$model->save();

當使用到

$model->timestamps = false;

這一行的時候可以在更新修改的操作中,臨時忽略時間欄位的修改

二. update方法

當Model中本就設定了 protected $timestamps = false;

這時候想要更新時間欄位可以如下操作

Model::find($id)
    ->update([
        'field1' => $value1,
        'updated_at' => date('Y-m-d H:i:s'),
    ]);

總結:
目前對框架認識的有些淺薄,此貼想要尋找一個答案
一個預設使用model的時間操作欄位的時候,怎麼使用update()方法靈活更新時間的寫法

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章