1.介绍
事件是一种常见的观察者模式的应用。简单的来说,就是当... 干...。这个当... 和干... 在 Laravel 事件中分别对应:当 (event)... 干 (listener)...
2.事件注册
#app\Providers\EventServiceProvider.php
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
'App\Events\LoginEvent' => [ //用户登录
'App\Listeners\LoginListener',
],
'App\Events\LogoutEvent' => [ //用户登出
'App\Listeners\LogoutListener',
]
];
3.命令生成文件
#生成 LoginEvent
php artisan make:event LoginEvent
#生成 LogoutEvent
php artisan make:event LogoutEvent
#生成 App\Listeners\XXX.php
php artisan event:generate
4.控制器调用
#控制器
event(new LoginEvent());
#App/Listeners/LoginListener.php
public function handle(LoginEvent $event)
{
$insert = [];
$insert['username'] = 'login' . time();
$insert['password'] = time();
$insert['updated_at'] = date('Y-m-d H:i:s');
$insert['created_at'] = date('Y-m-d H:i:s');
Uinfo::create($insert);
}
5.传递参数
#控制器
$insert = [
'username' => time() . rand(1, 500),
'password' => '123456'
];
event(new LoginEvent($insert));
#App\Events\LoginEvent.php
#App/Listeners/LoginListener.php
public function handle(LoginEvent $event)
{
$insert = $event->data;
$insert['updated_at'] = date('Y-m-d H:i:s');
$insert['created_at'] = date('Y-m-d H:i:s');
Uinfo::create($insert);
}
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!