2016-08-24 60 views
1

我想多個ID的傳遞給我的controller.First的類別和第二食品項目,如展現在性能表現路線多的Id(Laravel)

控制器是:

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','[email protected]'); 
Route::get('index/{Food_id?}', '[email protected]'); 

但它返回我的錯誤「App \ Http \ Controllers \ Detailscontroller :: show()「缺少參數2」。這裏的問題在哪裏?

回答

0

您正在調用具有2個參數的方法,但在路徑文件中,您只指定了一個參數。

也許你的路線應該是這個樣子:

Route::get('index/{Food_id?}/{Category_id}', '[email protected]'); 

那麼你會路過這兩個變量。

或修改您的方法聲明,並刪除$ CATEGORY_ID參數,因爲你不將它傳遞給方法,就像這樣:

public function show($Food_id) 
+0

,它總是返回我基於Food_id.i食物要的URl像'/index/Category_id/Food_id'或'/ index/Breakfast/foods'。 – MANI

+0

然後修改您的方法聲明並刪除$ Category_id參數,因爲您沒有將它傳遞給該方法。 –

+0

我如何獲得像這樣的'/ index/Category_id/Food_id'?或者如果Category_id是2並且Food_is 4看起來像'/ index/2/4'? – MANI