Laravel学习笔记之Model Observer模型观察者
先看文档介绍:
为加强处理模型事件,您可以注册一个模型观察者。一个观察者类可以包含很多函数对应于很多模型事件。比如,creating, updating, saving 函数可以在一个观察者中,除其他模型事件名之外。
一个模型观察者可以像这样:
<?php namespace App\Observers; class UserObserver { public function saved($model) { // 确定模型或给定属性是否已被修改。 $model->isDirty('status'); // 获取自上次同步以来已更改的属性 $model->getDirty(); } public function creating($model) { // } public function deleted() { // } }
您可以使用 observe 函数在 User 模型注册一个观察者实例:
public static function boot() { parent::boot(); static::observe(new UserObserver()); }
应用场景:
我们在做交易的时候,一笔订单从开始到结束有很多种状态,每种状态都会发相应的通知邮件。
可以在订单更改保存后,触发saved事件,根据isDirty()和getDirty()来判断当前是否更改了状态及当前状态,发送相应的通知。
比在相应的操作中写发送通知要清楚方便得多了。