Laravel 事件侦听的几个方法 [Trait, Model boot(), Observer Class]
1 Trait
1.1 可以在 Trait 中定义一个静态的 bootFooBar() 方法,注:FooBar 是你的 Trait 名称
namespace App\Traits; use App\Archive; trait HasArchive{ public static function bootHasArchive() { static::creating(function($model) { info("Trait [HasArchive] creating..."); }); static::deleting(function($model) { $model->archive()->delete(); }); } /** * Model has an archive. * * @return mixed */ public function archive() { return $this->morphOne(Archive::class, 'model_has_archive'); }}1.2 这种方式非常适合用来对关联中间表中的数据进行相应处理 2 Model2.1 定义静态的 boot() 方法
namespace App; use App\Traits\HasArchive;use Illuminate\Database\Eloquent\Model;use Kalnoy\Nestedset\NodeTrait; class Area extends BaseModel{ use HasArchive; use NodeTrait; protected $table = 'areas'; protected $guarded = []; public static function boot() { parent::boot(); static::creating(function (Area $area) { info("Model [Area] creating..."); }); } }2.2 这种方式定义起来比较简单粗暴,直接有效 3 利用 Observer 类3.1 这种方法就不举例了,官方文档可查阅3.2 此种方式,代码分离比较合理3.3 建议,除了使用 Trait 方式复用代码外,都应该采用这种方法 4 小结4.1 经测试,对事件的侦听,可在以上三种方式中都实现,不会相互覆盖。Laravel 会顺序调用
转载于:https://www.cnblogs.com/mouseleo/p/10915905.html
Laravel 事件侦听的几个方法 [Trait, Model boot(), Observer Class]相关推荐
- vue 侦听器侦听对象属性_Spring中的异步和事务性事件侦听器
vue 侦听器侦听对象属性 内置的事件发布功能从Spring的早期版本开始存在,并且对于处理同一应用程序上下文中Spring组件之间的基本通信仍然有用. 通常,应用程序可以生成应用程序事件(可以是任意 ...
- 侦听127.0.01_Spring 4.2中由注释驱动的事件侦听器
侦听127.0.01 介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分,幸运的是,Spring为瞬态事件(*)提供了完整的基础结构. 最近对事务绑定事件的重构为我提供了一个借口,以在实践中 ...
- Spring中的异步和事务性事件侦听器
内置的事件发布功能从Spring的早期版本开始存在,对于处理同一应用程序上下文中Spring组件之间的基本通信仍然有用. 通常,应用程序可以生成应用程序事件(可以是任意对象)并侦听它们. 整个机制非常 ...
- Spring 4.2中由注释驱动的事件侦听器
介绍 在应用程序内交换事件已成为许多应用程序中必不可少的部分,幸运的是,Spring为瞬态事件(*)提供了完整的基础结构. 最近对事务绑定事件的重构为我提供了一个借口,以在实践中检查Spring 4. ...
- 读《Javascript高级程序设计》中的javascript事件处理程序(事件侦听器)心得
今天读了<Javascript高级程序设计>中的javascript事件处理程序(事件侦听器)部分的内容,总结一些自己的心得: 事件就是用户或者浏览器自身执行的某种动作.例如click . ...
- 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究
在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...
- javascript事件侦听器是什么东西,用来干哈子
平常使用 on+事件类型绑定事件有缺陷: btn.onclick=function(){console.log(456);} 现在需要给这个事件再绑定一次 btn.onclick=function() ...
- Vue EventBus事件侦听($on、$emit、$off、$once)
eventBus.js import Vue from 'vue';export const EventBus = new Vue(); components/Parent.vue <templ ...
- Java事件侦听器函数_SWT 计算器 按钮事件监听 获取按钮text值
用swt插件做计算器,监听所有按钮.通过按钮text值判断哪个按钮被点击,如"0"按钮被点击,就在text框里加个0.现在问题是怎样在监听函数里得到button的text值.10个 ...
最新文章
- 在注意力中重新思考Softmax:分解非线性,这个线性transformer变体实现多项SOTA
- ionic 定位 android,ionic3定位 (android)
- UA MATH566 统计理论 用点估计构造置信区间
- Python怎么安装第三方库-numpy-libnum等; (详细版)
- 【SpringBoot集成ElasticSearch 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(配置+增删改查测试源码)【推荐使用】
- java多线程绘图_菜鸟学Java之 Java2D 多线程绘图
- 使用while 循环实现输出 1, 2, 3, 4, 5, 7, 8, 9, 11, 12(提示:输出结果为一行,没有6和10,12后面没有逗号)
- 数据可视化|实验五 分析1996-2015年人口数据各个特征的分布与分散状况
- 用python做生物信息数据分析_基于Python的自动获取生物信息数据的软件设计
- HDU 6836 Expectation(矩阵生成树 + 期望)
- 六年级计算机应用计划,2017六年级信息技术下册教学计划
- 用得最多的altium版本_83版《神雕》有多猛?收视率破90%!金庸最满意的版本...
- POJ 3670 Eating Together
- WeLink的杀手锏和远程办公软件的另一面
- mybatisplus批量插入原理_Word如何批量打印请柬、奖状、桌牌?一键批量制作就这么简单...
- sqlserver调用mysql存储过程_sqlserver调用存储过程
- 输入url到页面返回的过程
- 106. 数据库增删改的封装
- 切比雪夫加权 matlab,matlab切比雪夫多项式
- m基于LS+变步长LMS的Volterra级数数字预失真DPD系统matlab仿真
热门文章
- [转载]:TRY...CATCH (Transact-SQL)
- 自学python如何找工作-新手小白如何自学Python出去找工作?我用这五本书告诉你...
- python简单代码演示效果-10分钟教你用python 30行代码搞定简单手写识别!
- python第三方库排行-140种Python标准库、第三方库和外部工具
- python下载安装教程图解-一招解决:各种版本的Python下载安装教程
- python视频课程推荐-听说程序员都在用,5款Python开发工具推荐
- python流程控制-python简单流程控制
- python条件语句-Python if else条件语句详解
- python免费自学网站-python免费么
- 软件测试用python一般用来做什么-Python用来做Web开发的优势有哪些