栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > thinkphp

事件 - ThinkPHP5.0完全开发手册

thinkphp 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

事件 - ThinkPHP5.0完全开发手册

## 模型事件 |版本|新增功能| |---|---| |5.0.4|增加模型事件注册快捷方法| 模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 > 模型事件只可以在调用模型的方法才能生效,使用查询构造器通过Db类操作是无效的 模型类支持`before_delete`、`after_delete`、`before_write`、`after_write`、`before_update`、`after_update`、`before_insert`、`after_insert`事件行为 |标签位|描述| |---|---| |before_insert | 新增前 | |after_insert | 新增后 | |before_update | 更新前 | |after_update| 更新后 | |before_write| 写入前 | |after_write | 写入后 | |before_delete | 删除前 | |after_delete | 删除后 | 使用方法如下: ~~~ User::event('before_insert', function ($user) { if ($user->status != 1) { return false; } }); ~~~ 注册的回调方法支持传入一个参数(当前的模型对象实例),并且`before_write`、`before_insert`、 `before_update` 、`before_delete`事件方法如果返回false,则不会继续执行。 支持给一个位置注册多个回调方法,例如: ~~~ User::event('before_insert', function ($user) { if ($user->status != 1) { return false; } }); // 注册回调到beforeInsert函数 User::event('before_insert', 'beforeInsert'); ~~~ 可以在模型类的init方法里面统一注册模型事件,例如: ~~~ namespace appindexmodel; use thinkModel; class User extends Model { protected static function init() { User::event('before_insert', function ($user) { if ($user->status != 1) { return false; } }); } } ~~~ > 调用当前模型也可以写入 self::event('before_insert', ...) ## 快捷注册(`V5.0.4+`) V5.0.4+版本开始,系统提供了内置的事件注册的快捷方法,你可以用下面的方式替代 ~~~ namespace appindexmodel; use thinkModel; class User extends Model { protected static function init() { User::beforeInsert(function ($user) { if ($user->status != 1) { return false; } }); } } ~~~ 这些模型类的快捷方法如下: |标签位|描述| |---|---| |beforeInsert | 新增前 | |afterInsert | 新增后 | |beforeUpdate | 更新前 | |afterUpdate| 更新后 | |beforeWrite| 写入前 | |afterWrite | 写入后 | |beforeDelete | 删除前 | |afterDelete | 删除后 |
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/213516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号