【Laravel】リレーション先のイベント(deleting)が発火しない

レコード削除と同時にリレーション先のレコードも削除するようにしていて、リレーション先のモデルの中で、「deleting」イベントを拾って実行するイベントクラスを作成しました。しかし発火しない。。。

結論から言うと、公式にもちゃんと書いてあるんだけど、

Eloquentの複数モデル更新・削除を行う場合、影響を受けるモデルに対するsaved、updated、deletingモデルイベントは発行されません。

とのこと。この場合、実際にはリレーション先のモデルが呼ばれていないためらしい。

なので、リレーション元のモデルで「deleting」イベントを拾って実行するイベントクラスを作成して、その中でやりたかった処理を行うことにしました。

いろいろ便利な機能がたくさんあるLaravelさんですが、たまに落とし穴があるので注意したいですね。