Laravel 4.2:路由(get)在另一条路由(match)之后不起作用



我在Laravel 4.2上,我有一条路由(get)在另一条路由(match)之后不起作用。

她工作之前而不是之后。

下面的代码不能工作

Route::group(array('prefix' => 'messages'), function(){
    ...
    Route::match(['GET','POST'], '/{id}', ['uses' => 'TestController@conversation', 'as' => 'test.messagerie.conversation']);
    Route::get('x', ['uses' => 'TestController@test']);
});

下面的代码工作

Route::group(array('prefix' => 'messages'), function(){
    ...
    Route::get('x', ['uses' => 'TestController@test']);
    Route::match(['GET','POST'], '/{id}', ['uses' => 'TestController@conversation', 'as' => 'test.messagerie.conversation']);
});

为什么?

可能在第一个代码

/{id}此根优先级然后/x

所以如果你去/x路由这被认为是下一个/{id}路由

的id变量

如果你用第二种方式声明,你首先声明了路由x,所以它是优先级的,并且在那里工作得很好。

你没有为{id}指定模式,所以它会捕获所有内容,而不会到达第二个路由

最新更新