我们可以监听一张表的增删改,比如增的时候我们做什么,改的时候我们做什么
直接上代码
App\Observers
'test',
'displayorder' => 3,
'type' => 'testtest'
];
TestModel::create($data);
dump("create action");
}
image.png
public function test(){
$data = [
'title' => 'test',
'displayorder' => 4,
'type' => 'testtest'
];
TestModel::where('id', 3)->first()->update($data);
dump("update action");
}
image.png
模型钩子方法
retrieved, #获取到模型实例后触发
creating, #创建过程前 * 常用
created, #创建成功后 * 常用
updating, #更新过程前 * 常用
updated, #更新成功后 * 常用
saving, #代表这两个方法的集合creating,updating * 常用
saved, #代表这两个方法的集合created,updated * 常用
deleting, #删除过程前 * 常用
deleted, #删除过程后 * 常用
restoring, #恢复软删除记录前触发
restored, #恢复软删除记录后触发
当模型已存在,非新建时,事件触发顺序如下:
saving -> updating -> updated -> saved
当模型不存在,即需要新增时,事件触发顺序如下:
saving -> creating -> created -> saved
一个save()方法执行成功的话,会影响updated 和 saved,并且是先触发updated事件再触发saved事件,所以实际使用观察者的时候二选一即可,千万别两个事件重复交叉了。