2016-12-16 157 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。

该路径的快速更新修复了它。