实例详解Laravel事件监听

发布时间 - 2022-04-12 00:00:00    点击率:

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于事件监听的相关问题,实现事件监听的步骤是创建事件、创建监听、绑定事件与监听然后触发事件,下面根据示例一起来看一下,希望对大家有帮助。

【相关推荐:laravel视频教程】

Laravel Event & Listener 事件监听机制,让开发者不光是可以把代码组织得更加有条理的手段,而且也是对现实社会运行规则的高度抽象化映射,我们的现实社会本来也是这样,我们监控事物的变化,并对变化做出反应,让事物的发展按照我们的预期发展。当现实映射到代码逻辑中时,事件及其处理逻辑通常是分开的,毕竟不是所有的事件我们都需要马上进行响应处理。结合队列,我们可以把事件的监听和处理的工作流程做到更加完美。

使用案例:

监听log日志文件大小变化
用户登录:记录用户登录次数、记录访问相关信息

实现事件监听步骤:

1、创建事件:event
2、创建监听:listener
3、绑定事件与监听
4、触发事件

一、手动创建事件与监听

1、创建登录事件:event
app/Events/UserLogin.php

php artisan make:event UserLogin//获取用户信息实例
 public function __construct(User $user){
    $this->user = $user;}

2、创建用户登录邮件发送监听,同时绑定UserLogin登录事件:listener
app/Listeners/EmailAdminUserLogin.php

php artisan make:listener EmailAdminUserLogin --event=UserLogin //日志打印登录用户信息public function handle(UserLogin $event)
    {//        dd($event);
        //日志打印登录用户信息
        Log::info($event->user->name . '已经登录');
    }

3、注册事件与监听绑定关系
一个事件可以对应多个监听
app/Providers/EventServiceProvider.php

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

4、在用户登录时候触发事件
app/Http/Controllers/Auth/LoginController.php

//覆写AuthenticatesUsers类的authenticated方法protected function authenticated(Request $request, $user){
    //触发事件
    event(new UserLogin($user));}

二、快速生成事件与监听

这里会根据app/Providers/EventServiceProvider.php中属性listen生成对应的事件与监听

php artisan event:generate

【相关推荐:laravel视频教程】


# laravel  # 用户登录  # 绑定  # 多个  # 我们可以  # 带来了  # 给大家  # 相关信息  # 并对  # 相关知识  # 中时 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript中的标签模板是什么_它如何扩展字符串功能  北京专业网站制作设计师招聘,北京白云观官方网站?  怎么用AI帮你为初创公司进行市场定位分析?  Windows Hello人脸识别突然无法使用  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何在Windows环境下新建FTP站点并设置权限?  Laravel Fortify是什么,和Jetstream有什么关系  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在宝塔面板中修改默认建站目录?  利用vue写todolist单页应用  Python高阶函数应用_函数作为参数说明【指导】  动图在线制作网站有哪些,滑动动图图集怎么做?  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel怎么实现验证码(Captcha)功能  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel如何处理和验证JSON类型的数据库字段  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Swift中switch语句区间和元组模式匹配  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  javascript中对象的定义、使用以及对象和原型链操作小结  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  高端建站如何打造兼具美学与转化的品牌官网?  大型企业网站制作流程,做网站需要注册公司吗?  如何在新浪SAE免费搭建个人博客?  如何挑选高效建站主机与优质域名?  Laravel如何为API生成Swagger或OpenAPI文档  如何用IIS7快速搭建并优化网站站点?  米侠浏览器网页背景异常怎么办 米侠显示修复  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Swift中swift中的switch 语句  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  公司门户网站制作流程,华为官网怎么做?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  PHP 500报错的快速解决方法  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  🚀拖拽式CMS建站能否实现高效与个性化并存?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何用AWS免费套餐快速搭建高效网站?  如何快速搭建自助建站会员专属系统?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  C#如何调用原生C++ COM对象详解  node.js报错:Cannot find module 'ejs'的解决办法