如题,在批量更新时,update自动将软删除的数据过滤掉了,如何优雅地把deleted_at不为空的一起更新?
如题,在批量更新时,update自动将软删除的数据过滤掉了,如何优雅地把deleted_at不为空的一起更新?
翻了下源码,使用Eloquent时,加上 withoutGlobalScope方法并附上SoftDeletingScope的类为参数即可,eg:
$this->where('column', $value)->withoutGlobalScope(SoftDeletingScope::class)->update([
'column' => 'new data'
]);
具体按步骤参看:
重点在 $this->scopes 这个变量中,只需要在update时,将这个软删除的扩展排除掉即可。
不仅要看源代码,也要看手册,手册中明确说明过这个函数
根本不用withoutGlobalScope这么复杂的局部方法