bunty's blog

ググったこととか勉強したことのメモ

Eloqent の booted をうまく使いこなせていないなぁという話

オブザーバー とか知らなくてメモしておこうと思った。

readouble.com

ドキュメントに書いてあるこれ。あんまり詳しくドキュメント読んだことなかったけど、思ったよりライフサイクルいっぱいある。

Eloquentモデルはいくつかのイベントをディスパッチし、モデルのライフサイクルの以下の瞬間をフックできるようにしています。:retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring、restored、replicating。

<?php

protected static function booted()
{
    static::created(function ($user) {
        //
    });
}

ここら辺は使えそうなのでメモ

  • 多くのイベントをリッスンしている場合にはオブザーバクラスを作成
  • グローバルスコープを追加して、古いデータはデフォルトで取得しないようにするとか使えそう
  • deleted のタイミングで、関連するデータも削除するとか