即使已定义路径,也会在laravel中路由未定义的错误

时间:2016-12-16 17:38:44

标签: php laravel laravel-5

我的控制器中有以下方法:

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

点击链接时,我希望调用该方法,所以我在视图文件中有以下内容:

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

另外,我有以下路线设置:

Route::get('/showQualityResult', 'QualityCheckController@showQualityResult');

但是有以下代码行:

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

不能正常工作,我在frontEnd中收到以下错误:

enter image description here

现在我怎么能解决这个问题,为什么我得到Route未定义的错误,即使我已经定义了路由?

3 个答案:

答案 0 :(得分:6)

route()帮助程序使用路由名称来构建URL,因此您需要像这样使用它:

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

并为路线设置名称:

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

或者:

Route::get('/showQualityResult', 'QualityCheckController@showQualityResult')->name('quality-result.show');
  

route函数为给定的命名路由生成URL

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

如果您不想使用路线名称,请使用url()代替route()

答案 1 :(得分:2)

route()助手会查找命名路由,而不是路径。

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

Route::get('/showQualityResult', 'QualityCheckController@showQualityResult')
    ->name('showQualityResult');

应该为您解决问题。

答案 2 :(得分:0)

就我而言,我只是犯了一个愚蠢的错误。

在我的代码中,我有另一条命名路线(用一个唯一的名字正确命名)但是与Laravel一条相同的路径告诉我它无法找到。

快速更新路径修复它。