批量更新時無法觸發事件的解決方法

一百萬個答案發表於2020-04-21

使用下列程式碼無法觸發模型更新事件,因為它只是執行了sql語句,並沒有載入模型然後更新

Post::whereIn('id', $id_list)->update($request->all());

迴圈操作每個模型即可

Post::whereIn('id', $id_list)->get()->each(function ($data) use($request){
    $data->update($request->all());
});

依然無法觸發事件?
只有模型的 attributesoriginal 不一致的時候才會觸發(資料發生變化時),可以強制設定一個updated_at時間

Post::whereIn('id', $id_list)->get()->each(function ($data) use($request){$data->updated_at = date('Y-m-d H:i:s');});
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章