protected function fireCustomModelEvent($event, $method)
{
if (! isset($this->events[$event])) {
return;
}
$result = static::$dispatcher->$method(new $this->events[$event]($this));
if (! is_null($result)) {
return $result;
}
}
这个就是用来触发我们通过$events定义的事件了,假如我们这么定义:
class User extends Model{
protected $events = [
'saved' => UserSaved::class
]
}
那这里的触发就是:
$result = static::$dispatcher->fire(new UserSaved($this));
顺带一提,Laravel中触发事件的方法有两个,一个是常用的fire,还有一个是util,这两个的差别就是fire会把监听器的返回值返回,而util永远返回null