2016-12-16 180 views
3

我在我的控制器followning方法:路線不laravel定義的錯誤,即使路由被定義

public function showQualityResult($qualityData) { 
     return $qualityData; 
} 

當鏈接點擊,我想,被調用的方法,所以我有以下在我看來文件:

<a href="{{ route('showQualityResult' , Session::get('quality-data')) }}">Submited Quality Check</a> 

而且,我有以下的路線設置:

Route::get('/showQualityResult', '[email protected]'); 

但是就吃克以下的代碼行:

<a href="{{ route('showQualityResult' , Session::get('quality-data')) }}">Submited Quality Check</a> 

簡化版,真正的工作,我得到在前臺出現以下錯誤:

enter image description here

現在,我該如何解決這個問題,爲什麼我得到這個路由錯誤未定義,即使我有路由定義??

回答

6

route()助手使用路由名,建立網址,所以你需要使用它是這樣的:

route('quality-result.show', session('quality-data')); 

而且對於路線設置一個名稱:

Route::get('/showQualityResult', ['as' => 'quality-result.show', 'uses' => '[email protected]']); 

或者:

Route::get('/showQualityResult', '[email protected]')->name('quality-result.show'); 

路由函數生成一個給予命名的路由

https://laravel.com/docs/5.3/routing#named-routes

如果你不想使用路由名稱,使用的url()代替route()

+0

謝謝...但用'url()'方法我不能傳遞參數嗎? –

+1

@AlexanderSolonik它可以,你可以通過點擊我答案中的url()鏈接看到一個例子。另一件事是你使用會話來存儲數據。在這種情況下,你不需要將它傳遞到任何地方。你可以用'session('quality-data')'在控制器方法中得到它。 –

0

就我而言,我只是犯了一個愚蠢的錯誤。

進一步在我的代碼中,我有另一個命名的路由(正確命名爲一個唯一的名稱),但一個相同的路徑告訴我,它找不到一個Laravel。

該路徑的快速更新修復了它。