model::update()で更新するとObserverでキャッチできない

Laravelロゴ

LaravelにObserverという機能があって、モデルが作成されたり変更された時のイベントコールバックを登録することができるのですが、なぜかUpdate時のイベントがキャッチできない問題に遭遇しました。

原因

単一モデルじゃないとキャッチできないらしい。つまりModel::update()を使って更新してもダメ。
具体的には

Model::where('id',$id)->update($data);

はダメで

$model = Model::find($id);
$model->name = 'hogehoge'; $model->save();

みたいな感じで、save()を使わないとダメらしぃ。

うーん・・なんとも・・・。

 

タイトルとURLをコピーしました