Eyoucms程序开发:事件
模型事件
版本 | 新增功能 |
---|---|
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 app\index\model;
use think\Model;
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 app\index\model;
use think\Model;
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 | 删除后 |
相关文档
- 使用VenoBox弹出窗口灯箱插件实现图片相册功能
- 为下载的迅睿cms模板前端增加友情链接版块
- 迅睿cms使用全局表单制作证书查询功能
- 迅睿cms站群系统实现全国城市分站功能插件及调用标签
- 外贸网站增加多媒体展示更加有利于提高页面的SEO优化
- 利用搜索引擎的自动填充功能挖掘问题型词汇
- 利用搜索引擎自动填充功能拓展各类关键词
- 如何禁用WordPress的XML-RPC功能
- 为你的WordPress添加图片替换功能 Enable Medi...
- 迅睿CMS:注册界面增加姓名的升级方法
- 迅睿CMS:百度编辑器Ueditor增加字体的修改方法
- 易优channel栏目标签的附加功能使用教程
- EYOU 首页如何调取图集模型图片
- 留言模型如何使用手机短信验证码
- EYOU 列表页如何调取产品模型参数
- EYOU 列表页如何调取图集模型图片
- 搜索功能的调用代码
- 装修类网站如何使用关联设计师功能
- 留言模型验证码调用
- 易优后台栏目管理—如何增加栏目?
上一篇: Eyoucms程序开发:JSON序列化
下一篇: Eyoucms程序开发:视图实例化