每当我的模型被删除/更新/保存时,我一直在使用Laravel Observers来处理我的app逻辑。我注意到在某些情况下这些观察者不会被触发。例如,如果我使用
Model::where(active,1)->update([some stuff]);
观察员永远不会被触发。必须获取所有记录并在每个实例上运行forloop并调用update是非常烦人的。有没有办法解决这个问题?还是有任何好的做法来处理这些情况?
答案 0 :(得分:0)
执行此操作时:
Model::where(active,1)->update([some stuff]);
执行查询构建器的update()
方法而不是Eloquent的update()
方法。
如果要触发Eloquent事件,则需要逐个更新行。
答案 1 :(得分:0)
改为事件和侦听器?您可以运行原始或查询构建器的更新,在事件中传递那些受影响的行。