我一直在为我的项目使用查询构建器,并希望使用查询构建器恢复软删除的记录。
答案 0 :(得分:5)
看这里https://laravel.com/docs/5.6/eloquent#soft-deleting
恢复软删除的模型 有时您可能希望“取消删除”软删除的模型。要将软删除的模型恢复为活动状态,请在模型实例上使用restore方法:
$flight->restore();
或
Model::query()->restore();
如果您想手动执行..只需
Model::whereNotNull('deleted_at')->update([
'deleted_at' => null
]);
答案 1 :(得分:1)
软删除的作用是将值设置为deleted_at
列,然后使用全局范围过滤deleted_at
列具有值的记录。
因此,要恢复软删除记录,您只需将deleted_at
列设置为null。
如您所知,使用查询构建器
DB::table('table')
->where('id', $recordToRestoreId)
->update(['deleted_at' => null]);
如果使用Eloquent
Model::withTrashed()
->where('id', $recordToRestoreId)
->restore();
或者如果您有模型实例
$model->restore();