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

更新日期: 2019-08-08 阅读次数: 877 字数: 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年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
2020年04月30日 全国交通安全反思日
查看更多节日