2016-06-07 108 views
0

我使用laravel 5.2和具有關於路由問題。假設我有這樣的路線:http://example.com/out/parameter1/parameter2/Laravel選擇路線參數不工作

參數1應要求而參數2應該是可選的。當用戶輸入這個網址:http://example.com/out/parameter1/或本http://example.com/out/parameter1/parameter2/,他們應該能夠繼續進行。當輸入時,http://example.com/out/他們將被重定向到主頁。

這裏是我的路線:

Route::get('out/{param1}/{param2?}', '[email protected]']); 
Route::get('out/', '[email protected]']); 

控制器:

public function out($param1, $param2 = '', Request $request) { 
    // logic here 
} 

是我得到的錯誤是這樣的: Argument 3 passed to App\Http\Controllers\MyController::out() must be an instance of Illuminate\Http\Request, none given

我已經指定param2上的默認值方法。

+0

檢查與您的路由器。改變路線::獲得( '出/ {參數1}/{參數}?', '@ myController的出']);到路線::得到( '輸出/ {參數1}/{參數2}', '@ myController的出']); –

+0

@MansoorH,它不工作,因爲我得到一個404錯誤。另外,'param2'應該是可選的。 – basagabi

+0

什麼可以第三個參數的可能值可以請你定義 –

回答

1

請求實例必須是第一位的

public function out(Request $request, $param1, $param2 = '') 
{ 
    // logic here 
} 

文檔:https://laravel.com/docs/5.2/controllers下的方法注入

+0

這工作!謝謝!!我仍然無法接受這是正確的答案,因爲它需要我幾分鐘的時間。我會在一段時間標記這一點:) – basagabi