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

更新日期: 2019-08-08 阅读次数: 574 字数: 193 分类: backpack

问题的现象是这样的:

例如:

编辑 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 的变量。

爱评论不评论

近期节日

2019年10月22日 世界传统医药日
2019年10月24日 霜降
2019年10月24日 联合国日
2019年10月31日 世界勤俭日
2019年11月01日 万圣节
2019年11月08日 立冬
2019年11月08日 中国记者日
2019年11月10日 世界青年节
2019年11月11日 光棍节,双十一购物节
2019年11月14日 世界糖尿病日
2019年11月17日 国际大学生节
2019年11月20日 国际儿童日
查看更多节日