现象:model定义的事件如`saving`没有执行
例子:
user::first()->update(['remark'=>'123']);//会触发事件 Model
user::where('id',1)->update(['remark'=>'123']);//不会触发事件 Builder
原因:执行update前调用了where等方法,得到的不是model而是builder对象,该对象执行update时不会触发事件监听
解决:方案一:把事件监听转移到外部,手动触发事件;方案二:排查所有调用update的地方,确保是基于model调用
本文探讨了在Laravel框架中,Model定义的事件如`saving`在特定情况下不被触发的问题。具体表现为使用`update`方法更新数据时,若通过`where`等条件筛选后再调用`update`,则不会触发Model的事件监听。文章提供了两种解决方案:一是将事件监听移到外部并手动触发,二是检查所有`update`调用确保基于Model进行。
3205

被折叠的 条评论
为什么被折叠?



