Eloqent の booted をうまく使いこなせていないなぁという話
オブザーバー とか知らなくてメモしておこうと思った。
ドキュメントに書いてあるこれ。あんまり詳しくドキュメント読んだことなかったけど、思ったよりライフサイクルいっぱいある。
Eloquentモデルはいくつかのイベントをディスパッチし、モデルのライフサイクルの以下の瞬間をフックできるようにしています。:retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring、restored、replicating。
<?php protected static function booted() { static::created(function ($user) { // }); }
ここら辺は使えそうなのでメモ
- 多くのイベントをリッスンしている場合にはオブザーバクラスを作成
- グローバルスコープを追加して、古いデータはデフォルトで取得しないようにするとか使えそう
- deleted のタイミングで、関連するデータも削除するとか