如何使用Laravel的查询构建器恢复软删除的记录?

时间:2018-03-28 15:02:26

标签: laravel laravel-5

我一直在为我的项目使用查询构建器,并希望使用查询构建器恢复软删除的记录。

2 个答案:

答案 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();