问题的现象是这样的:
例如:
编辑 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 聊聊, 查看更多联系方式