先来看看如何使用模型事件,文档里面写了两种方法,实际上总共有三种方式可以定义一个模型事件,这里以saved事件来做例子,其他事件都一样。
1.events属性
直接上代码:
class User extends Authenticatable {
use Notifiable;
protected $events = [
'saved' => UserSaved::class,
];
}
这个比较难以理解,而且文档并没有详细说明,刚开始以为saved被触发后会调用UserSaved里面的handle方法,实际上并不是。这个数组只是对事件做的一个映射,它定义了在模型的saved的时候会触发UserSaved这个事件,我们还要定义该事件以及其监听器才可以:
namespace App\Events;
use App\User;
class UserSaved {
public $user;
public function __construct(User $user){
$this->user = $user;
}
}
namespace App\Listeners;
class UserSavedListener {
public function handle(UserSaved $userSaved){
dd($userSaved);
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号