laravel8 监听事件的使用

事件监听机制
事件监听的使用
注册事件监听
生成事件类和监听者类
配置监听对象及监听服务
在指定位置触发事件监听
事件监听机制
  顾名思义,事件监听即监听事件的发生。当我们需要针对特定的事件进行特定的处理时,就需要绑定对应的处理方法。在我看来这和js添加点击事件是同一性质的。区别在于js添加点击事件是监听标签是否被点击。而在laravel中,是监听某一行为(注册,登录等)是否发生。

事件监听的使用
注册事件监听

  首先,找到app\providers\EventServiceProvider.php文件,注册事件监听。以事件listernA为例,绑定监听者AListerner。

在这里插入图片描述
生成事件类和监听者类
  事件监听注册后,cmd打开控制台。cd到项目根目录下,执行php artisan event:generate。执行成功后会自动生成app\Events\ListernA.php和app\Listerners\AListerner.php这两个文件。

在这里插入图片描述 

 


配置监听对象及监听服务
  首先,在事件ListernA的构造器中指定要监听的对象。

class listenA
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public function __construct(User $user)
    {
        $this->user = $user;
    }
    public function broadcastOn()
    {
        return new PrivateChannel('channel-name');
    }
}

  其次,针对监听对象执行监听服务

class AListerner
{
    protected $session;
    
    public function __construct(Store $session)
    {
        $this->session = $session;
    }
    
    public function handle(listenA $event)
    {
        $user= $event->user;
        if($user->position==0){
            $this->session->put("get",time());
            $this->session->put("cancel",false);
        }else{
            $this->session->put("get",false);
            $this->session->put("cancel",time());
        }
    }
}

在指定位置触发事件监听
  在控制器中找到事件监听的逻辑位置,笔者将登录作为示例进行演示。

public function login($user){
    //验证用户登录
    if(checkUser($user)){
        //触发事件监听
        event(new listenA($user));
    }
}
 

————————————————
版权声明:本文为CSDN博主「sileaf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_53889778/article/details/111768033

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值