一、数据库事件

1、执行增删改查的时候,可以触发一些事件来执行额外的操作
2、这些额外的事件可以部署在构造方法里等待激活执行
3、数据库事件执行方法为Db::event(‘事件名’,‘执行函数’),具体事件名如下
thinkphp6.0模型篇之模型和数据库事件_数据库
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、支持的事件类型更加的丰富,具体如下
thinkphp6.0模型篇之模型和数据库事件_事件触发_02
2、在模型端使用静态方法调用即可完成事件触发

protected static function onAfterRead($query)
{
echo '执行了查询方法';
}
protected static function onBeforeInsert()
{
echo '修改前';
}
protected static function onAfterInsert()
{
echo '修改成功';
}