【问题标题】:Routes collision in Laravel 4Laravel 4中的路线碰撞
【发布时间】:2013-12-17 08:37:09
【问题描述】:

我正在使用 Laravel 4 开发一个项目,我有一个“用户路线”来通过用户名显示用户个人资料:

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

但这里我有另一个显示用户消息的路由。

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

但是这里有冲突。 Laravel 认为“messages”是一个用户名,因为 first Route。

我该如何解决这个问题?谁能帮帮我,谢谢。

【问题讨论】:

  • 我想换个顺序。
  • 它有效,但如果用户名真的是“消息”怎么办!它不制作场景,但 Laravel 如何处理这些情况?
  • @aliA 它仍然会打开消息页面。

标签: php laravel laravel-4 laravel-routing


【解决方案1】:

您必须更改这些路由的顺序,因为 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

【讨论】:

    猜你喜欢
    • 2014-12-29
    • 2011-11-16
    • 2015-09-09
    • 1970-01-01
    • 2021-03-29
    • 2021-12-25
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    相关资源
    最近更新 更多