Laravel使用事件Event

23 篇文章 0 订阅

第一种创建方式:

这种方式较为传统,按流程一步步创建,如果后续有新的监听,需要手动创建并进行关联

第一步:创建一个事件,如用户登录

php artisan make:event UserLogin

第二步:为事件创建监听,如给管理员发送邮件(一个事件可以有多个监听)

php artisan make:listener EmailAdminUserLogin --event=UserLogin

第三步:系统中注册事件和监听的关系
app/Providers/EventServiceProvider.php 文件中 protected $listen 里进行注册,如

protected $listen = [
        UserLogin::class => [
            EmailAdminUserLogin::class,
        ],
    ];

第四步:触发
在需要触发的地方使用

event(new UserLogin());

第二种创建方式(推荐):

这种方式可一步把事件和监听创建完毕,前提是事件的监听已经提前规划好

第一步:书写事件和监听关联关系
同一个事件的监听尽量放入同一个文件夹

protected $listen = [
        'App\Events\UserLogin' => [
            'App\Listeners\UserLogin\EmailAdminUserLogin',
            'App\Listeners\UserLogin\AddLoginCounterUserLogin',
            'App\Listeners\UserLogin\ChangStatusUserLogin',
        ],
    ];

第二步:运行一键创建命令

php artisan event:generate

其他:
监听的执行顺序是按数组的排序;
存在多个监听时如果其中一个监听运行失败,想停止接下来监听的执行,可以直接 return false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值