Thinkphp 6.0模型和数据库的事件

本节课我们来补充一下遗漏的知识点,数据库和模型的事件。


一.数据库事件


1. 当你执行增删改查的时候,可以触发一些事件来执行额外的操作;
2. 这些额外的操作事件,可以部署在构造方法里等待激活执行;
3. 数据库事件方法为 Db::event('事件名', '执行函数'),具体事件名如下:

Thinkphp 6.0模型和数据库的事件_第1张图片
4. 数据库事件只支持:find、select、update、delete、insert 这几个方法;
5. 在控制器端,事件一般可以写在初始化方法里,方便统一管理;
 

public function initialize()
{
Db::event('before_select', function ($query) {
echo '执行了批量查询操作!';
});
Db::event('after_update', function ($query) {
echo '执行了修改操作!';
});
}


二.模型事件


1. 支持的事件类型更加的丰富,具体如下:

Thinkphp 6.0模型和数据库的事件_第2张图片
2. 在模型端使用静态方法调用即可完成事件触发;
 

protected static function onAfterRead($query)
{
echo '执行了查询方法';
}
protected static function onBeforeUpdate($query)
{
echo '准备修改中...';
}
protected static function onAfterUpdate($query)
{
echo '修改完毕...';
}

你可能感兴趣的:(php,php)