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

更新日期: 2019-08-08 阅读次数: 1824 字数: 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 的变量。

爱评论不评论

近期节日

2020年07月06日 国际接吻日
2020年07月06日 小暑
2020年07月07日 抗日战争纪念日
2020年07月11日 世界人口日
2020年07月22日 大暑
2020年07月30日 非洲妇女日
2020年08月01日 八一建军节
2020年08月06日 国际电影节
2020年08月07日 立秋
2020年08月15日 日本投降日
2020年08月22日 处暑
2020年08月25日 七夕
查看更多节日