一、软删除
软删除必须满足条件:
1.1、表中必须有一个软删除字段
1.2、模型中引入对应的操作(trait)实现多继承
1.3、模型中指定软删除的标识字段
原来的delete 删除就变成了软删除,不会删除真实数据。
1.4、创建删除控制器方法
// 删除用户操作
public function del(int $id) {
// 软删除
User::find($id) -> delete();
// 强制删除 在配置了软删除的时候,真实的删除操作
// User::find($id) -> forceDelete();
return ['status' => 0, 'msg' => '删除成功'];
}
1.5、增加删除按钮路由
效果:
二、恢复用户
2.1 显示所有用户
withTrashed()显示所有的,包括已经进行了软删除的
2.2 修改现实模版
@if(auth() -> id() != $item -> id)
@if($item -> deleted_at != null)
<span class="label label-success radius">
<a href="{{route('admin.user.restore', ['id' => $item -> id])}}">恢复</a>
</span>
@else
<span class="label label-danger radius">
<a href="{{route('admin.user.del', ['id' => $item -> id])}}">删除</a>
</span>
@endif
@endif
2.3 恢复路由
2.4 控制器方法
// 恢复用户
public function restore(int $id) {
// 还原
User::onlyTrashed() -> where('id', $id) -> restore();
return redirect(route('admin.user.index')) -> with('success', '还原成功');
}
|