CakePHP中URL路由配置中的用户名

CakePHP中URL路由配置中的用户名,cakephp,routing,Cakephp,Routing,我正在尝试创建一个自定义路由,比如mysite.com/username/controller/action/params。基本上,用户经过身份验证后,其用户名会出现在域后的url中 我试过书中的例子,但没有成功 这是我尝试过的,但没有帮助: 路由器::连接('/:username/:controller/:action',array()); 路由器::连接('/:controller/:action',array()) 你们能帮帮我吗 提前感谢, DenisCake不会自动知道您的路线的:us

我正在尝试创建一个自定义路由,比如mysite.com/username/controller/action/params。基本上,用户经过身份验证后,其用户名会出现在域后的url中

我试过书中的例子,但没有成功

这是我尝试过的,但没有帮助: 路由器::连接('/:username/:controller/:action',array()); 路由器::连接('/:controller/:action',array())

你们能帮帮我吗

提前感谢,


Denis

Cake不会自动知道您的路线的
:username
参数意味着什么。有三个默认参数不需要进一步配置,它们是:

  • :控制器
  • :操作
  • :插件
  • 所有其他参数都需要使用匹配的正则表达式来指定,此外,您还需要指定一个名为
    pass
    的数组,以告诉Cake它应该将该参数传递给控制器对此页面的操作。在您的情况下,路线可能如下所示:

    Router::connect(
        '/:username/:controller/:action',
        array(), // Since you already have the controller and action in your URL there is no need for further directions here
        array(
            'pass' => array('username'), // If you want to pass the username to your action
            'username' => '[a-zA-Z0-9]+' // What regex the username should match
        ),
    ); 
    

    另请参见本书中关于路由的页面,特别是供进一步参考。

    Hi oldskool,谢谢您的回答。我试过你的例子,读了几遍这本书,但我仍然没有运气,cakePHP没有找到这条路线。例如,在我的布局中,有一个元素正在使用requestAction检索菜单类别(categories/loadCategories)。当我将用户名添加到URL时,cake抛出一个缺少的控制器,并指向“loadCategories”作为缺少的控制器。如果这是特定于cakephp2.0的,我将使用它。谢谢你,丹尼西。。我也有同样的问题。。你解决这个问题了吗。。我需要你的帮助来解决我的问题嗨,困惑的孩子。没有解决这个问题,只是放弃了,从Symfony开始。