Laravel 4.2:路由(get)在另一条路线(匹配)后不起作用

时间:2015-09-01 09:13:55

标签: php laravel laravel-4 routes

我在Laravel 4.2上,我有一条路线(get)在另一条路线(匹配)之后无效。

她以前工作但不工作。

以下代码不起作用

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']);
});

为什么?

2 个答案:

答案 0 :(得分:1)

可能在第一个代码中

/ {id}此根优先于/ x

所以如果你去/ x路线,这被认为是下一个 / {id}路线的id变量

如果你以第二种方式宣布,你首先宣布路线x,使其优先化,并在那里工作得很好。

答案 1 :(得分:1)

您没有为{id}指定模式,因此它捕获所有内容并且从未到达第二条路线。