大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【Laravel】オブザーバ(observer)

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

背景

Laravelで出てくる「オブザーバ(observer)」がよく分からなかったので、記事にまとめてみます。

 

オブザーバ(observer)

オブザーバとは?

モデルを監視し、実行されるイベントに対応するメソッドを呼んでくれます。

 

イベントフックが多い場合に、イベントフックをまとめてオブザーバ(observer)に定義することができる。

なので、コントローラの肥大化を防ぐことができます。

 

使い方

・Observerのクラスを作成する

・クラス内で、イベントに対応する名前のメソッドを定義する

・定義したメソッドは、引数にモデルを受け取ります

・bootメソッドを使って、Observeメソッドを実行する

 

各イベントと同名のメソッドでやりたいことを定義する。

class UserObserver {
public function creating($model)
{
if ( ! $user->isValid()) return false;
}
}

 

監視したいモデルに対してObserveメソッドを使用する。

イベントフックを登録するには、bootメソッドも実行する必要がある。

public static function boot()
 {
parent::boot();

User::observe(new UserObserver);
}

 

Eloquentモデルが発行するイベント

オブザーバ(observer)がデフォルトで補足してくれるイベントのみ記載します。

・creating

・created

・updating

・updated

・saving

・saved

・deleting

・deleted

・restoring

・restored

・retrieved

 

参考

素晴らしい記事に感謝いたします。

laravelのmodelのhook - エンジニアですよ!

Eloquent:利用の開始 5.5 Laravel