我想将多个ID传递给我的控制器。第一个用于类别,第二个用于食物项目,如功能节目中所示
我的控制器是:
public function index()
{
$Foods=Food::all();
$Category=Categories::all();
return view('index.welcome', compact('Foods','Category'));
}
public function show($Food_id,$Category_id)
{
$food = Food::with('restaurant','categories')->findOrFail($Food_id);
$category = Categories::with('food')->findOrFail($Category_id);
return view('index.show', compact('food','category'));
}
我的路线是:
Route::get('index','DetailsController@index');
Route::get('index/{Food_id?}', 'DetailsController@show');
但它返回错误" 缺少参数2的App \ Http \ Controllers \ Detailscontroller :: show()"。这有什么问题?
答案 0 :(得分:0)
您正在调用一个包含2个参数的方法,但在路径文件中您只需指定一个参数。
也许你的路线应该是这样的:
Route::get('index/{Food_id?}/{Category_id}', 'DetailsController@show');
然后你将传递两个变量。
或者修改你的方法声明并删除$ Category_id参数,因为你没有将它传递给方法,如下所示:
public function show($Food_id)