具有多个Id的路由(Laravel)

时间:2016-08-24 10:55:03

标签: php laravel laravel-5.2

我想将多个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()"。这有什么问题?

1 个答案:

答案 0 :(得分:0)

您正在调用一个包含2个参数的方法,但在路径文件中您只需指定一个参数。

也许你的路线应该是这样的:

Route::get('index/{Food_id?}/{Category_id}', 'DetailsController@show');

然后你将传递两个变量。

或者修改你的方法声明并删除$ Category_id参数,因为你没有将它传递给方法,如下所示:

public function show($Food_id)