【Laravel】リレーション先のイベント(deleting)が発火しない
レコード削除と同時にリレーション先のレコードも削除するようにしていて、リレーション先のモデルの中で、「deleting」イベントを拾って実行するイベントクラスを作成しました。しかし発火しない。。。
結論から言うと、公式にもちゃんと書いてあるんだけど、
Eloquentの複数モデル更新・削除を行う場合、影響を受けるモデルに対するsaved、updated、deletingモデルイベントは発行されません。
とのこと。この場合、実際にはリレーション先のモデルが呼ばれていないためらしい。
なので、リレーション元のモデルで「deleting」イベントを拾って実行するイベントクラスを作成して、その中でやりたかった処理を行うことにしました。
いろいろ便利な機能がたくさんあるLaravelさんですが、たまに落とし穴があるので注意したいですね。
-
前の記事
【Laravel8】サブディレクトリに設置したアプリでlivewire.jsがnet::ERR_ABORTED 404 Not Found 2021.03.29
-
次の記事
Laravel Mix アップデートで、「Error: Cannot find module ‘webpack-cli/package.json’ Require stack:」にハマった話 2021.05.02
コメントを書く