CakePHP路由相同的动作,不同的路径为不同的参数

时间:2014-02-11 11:18:24

标签: cakephp cakephp-routing

我想连接以下路线:

寄存器/ about_you

my_profile /编辑/ about_you

......采取同样的行动。但我希望第二条路线引入一个参数,我可以用它来识别我们在编辑页面上,而不是注册。

我目前在我的routes.php:

Router::connect('/register/:action/*',
    array(
        'controller' => 'registration'
    )
);

Router::connect('/my_profile/edit/:action/*',
    array(
        'controller' => 'registration',
        'edit' => 1
    )
);

这可以将上面的URL连接到正确的位置 - 我可以在控制器中使用$this->params['edit']。但是,当我尝试使用

构建链接时
Router::url(array('controller' => 'registration', 'action' => 'about_you', 'edit' => 1, $i));

我得到了

/注册/ about_you / 0 /编辑:1

而不是

/ my_profile /编辑/ about_you

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您是否尝试过像这样交换?

Router::connect('/my_profile/edit/:action/*',
    array(
        'controller' => 'registration',
        'edit' => 1
    )
);
Router::connect('/register/:action/*',
    array(
        'controller' => 'registration'
    )
);

如果是这样的话,你会得到/ my_profile / edit / about_you / 0