我的控制器中有以下方法:
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中收到以下错误:
现在我怎么能解决这个问题,为什么我得到Route未定义的错误,即使我已经定义了路由?
答案 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
答案 1 :(得分:2)
route()
助手会查找命名路由,而不是路径。
https://laravel.com/docs/5.3/routing#named-routes
Route::get('/showQualityResult', 'QualityCheckController@showQualityResult')
->name('showQualityResult');
应该为您解决问题。
答案 2 :(得分:0)
就我而言,我只是犯了一个愚蠢的错误。
在我的代码中,我有另一条命名路线(用一个唯一的名字正确命名)但是与Laravel一条相同的路径告诉我它无法找到。
快速更新路径修复它。