【Laravel】リレーション先のイベント(deleting)が発火しない
レコード削除と同時にリレーション先のレコードも削除するようにしていて、リレーション先のモデルの中で、「deleting」イベントを拾って実行するイベントクラスを作成しました。しかし発火しない。。。
結論から言うと、公式にもちゃんと書いてあるんだけど、
Eloquentの複数モデル更新・削除を行う場合、影響を受けるモデルに対するsaved、updated、deletingモデルイベントは発行されません。
とのこと。この場合、実際にはリレーション先のモデルが呼ばれていないためらしい。
なので、リレーション元のモデルで「deleting」イベントを拾って実行するイベントクラスを作成して、その中でやりたかった処理を行うことにしました。
いろいろ便利な機能がたくさんあるLaravelさんですが、たまに落とし穴があるので注意したいですね。