laravel backpack url 中包含多个参数时,编辑某条数据时数据错乱

文章目录

    问题的现象是这样的:

    例如:

    编辑 shop id 为 3 的店铺中,商品 id 为 11 的商品

    https://www.xxx.com/admin/shop/3/products/11/edit

    但是 backpack 自带的编辑页面,永远返回的是商品 id 为 3 的商品。

    也就是说,编辑时,永远取的是链接中的第一个参数作为 model 的 ID。

    只需要在 CrudController 中加入 edit,destroy 的代码,以覆盖父函数的实现即可。

    public function edit($id) {
    	$id = request()->route('product');
    	return parent::edit($id);
    }
    
    public function destroy($id){
    	$id = request()->route('product');
    	$del_Product = Product::where('id', $id)->first();
    
    	if ($del_Product != null) {
    		$del_Product->is_deleted = 1;
    		$del_Product->save();
    		return "删除成功";
    	} else {
    		return false;
    	}
    }
    

    这里有个技巧,即 backpack 默认会取最后一个单词的单数形式为变量名。

    所以, product 为商品 id 的变量。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式