laravel8 increment 是否支持模型事件
我看文档写的是
当你使用模型中的 increment 和 decrement 方法时,会触发 updating 和 updated 模型事件。而在构造器中直接使用 increment 和 decrement,不会触发模型事件。
我目前是在一个队列里面,用到了increment
try {
if($res!=null){
ImagedownJob::where('id',$this->job_id)->increment('down_count');
}
}
}
可是并没有触发模型事件,有没有大佬能给我讲解一下,是我没有理解到位,还是使用方法错误呢
找到问题了,先要有实体模型【实体模型不是说new一个模型就可以了】,参考刚刚上面一位朋友分享的文章仔细看了一下源码,会触及两个属性original 和 attributes 的值进行判断更新操作,也就是说,原实体模型得有值,才能通过更新后的数据判断是否isdirty来判断更新,从而操作模型 ImagedownJob::where('id',$this->job_id)->increment('down_count'); 改为 $model = ImagedownJob::find($this->job_id); $model ->increment();