Laravel 4中的路线碰撞

时间:2013-12-01 16:56:55

标签: php laravel laravel-4 laravel-routing

我正在使用Laravel 4进行项目,我有一个"用户路线"按用户名显示用户个人资料:

Route::get("user/{username}", array( 'as' => 'userProfile', 'uses' => 'UserController@getProfile') );

但是我在这里有另一条显示用户消息的路线。

Route::get('user/messages', array( 'as' => 'userMessages', 'uses' => 'MessageController@getMessages') )

但这里发生了碰撞。 Laravel认为"消息"是第一条路线的用户名。

我该如何解决这个问题?有人可以帮助我,谢谢。

1 个答案:

答案 0 :(得分:3)

当Laravel按照routes.php

中定义的顺序处理它们时,您必须更改这些路线的顺序

所以,

Route::get('user/messages', array( 'as' => 'userMessages', 'uses' => 'MessageController@getMessages') )

之前

Route::get("user/{username}", array( 'as' => 'userProfile', 'uses' => 'UserController@getProfile') );

然后在User验证中,您必须阻止任何人选择用户名messages