我是Laravel的新手,偶然发现了一个(至少对我而言)奇怪的行为: 我有以下指向路线的链接:
<a href="{{ route('nameofroute',$var->id) }}">{{ $var->desc }}</a>
生成的链接
way/to/myroute?100
而不是
way/to/myroute/100
iam在我的代码中的各个地方使用它,并且它正常工作,我想这是我的routes.php,但我找不到错误。
Route::get('way/to/myroute', [ 'as' => 'nameofroute', 'uses' => 'MyController@getMyfunc' ]);
答案 0 :(得分:2)
您未提供参数{idoranything}
,因此您获得了way/to/myroute?100
而不是way/to/myroute/100
。您的路线声明应该是这样的:
Route::get('way/to/myroute/{id}', [ 'as' => 'nameofroute', 'uses' => 'MyController@getMyfunc' ]);
因此url
可以是way/to/myroute/100
,您可以使用route('nameofroute',$var->id)
。
答案 1 :(得分:1)
这是因为您没有正确设置路线。您需要添加ID参数,如下所示:
Route::get('/nameofroute/{id}', array('uses' => 'Controller@getRoute', 'as' => 'nameofroute'));
Laravel将自动检测到您希望参数在那里并将其添加到URL。