PHP laeavel软删除以及软删除还原 易错点

本文介绍了在PHP Laravel框架中如何实现软删除和恢复数据的步骤,包括在数据库中添加`deleted_at`字段,在模型中引入`SoftDeletes`类,以及在控制器中执行删除操作。在查询软删除的数据时,需使用`withTrashed()`方法。文章还强调了在视图层和路由中处理软删除ID时可能遇到的错误,提示$id参数的传递需要注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先 数据库字段添加deleted_at字段
在这里插入图片描述
然后在模型层中引入 SoftDeletes类 并引用

use Illuminate\Database\Eloquent\SoftDeletes;

在这里插入图片描述
控制器正常执行删除代码

   //软删除
        public function  del(int $id){
		//$res = Articles::where($id)->delete();
            $res = Articles::destroy($id);

            if($res){
                return '删除成功';
            }
                return '失败';
        }
        
     //软删除还原
        public  function yuan(Request $request){
        $id= $request['id'];

            Articles::onlyTrashed()->find($id)->restore();
            return ['status'=>0,'msg'=>'还原成功'];
        }

软删除展示

软删除展示时 普通的查询方法get()查询不出来软删除的内容
要使用特定的函数withTrashed() 来查询才能获取到所有内容

    //展示页面
    public  function show(){
//        $data = Articles::paginate(8);
        $data=Articles::withTrashed()->paginate(8);
        return view('week.show',['data'=>$data]);
    }

易错点
接收到的$id为路由附带传入参数 试图层传ID参数如下

1.视图层
展示循环后的id为’$v->id’

<a href="{{route('admin.del',$v->id)}}">删除</a>

2.路由在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值