CakePHP路由和命名参数


CakePHP Routing and named parameters

我有以下路由:

Router::connect('/admin/login/:to',
                array('admin'=>true,'controller'=>'users','action'=>'login'),
                array(
                    'to' => '[A-Za-z0-9'._-]+',
                    'pass' => array('to')
                ));

传递一个带有登录url的string/int。但是它不再使用to的命名参数。例如,不是得到:/admin/login/to:1AB而是得到/admin/login/1AB

我如何保持命名参数,但仍然改变路由,从url中删除用户位?我试过:'/admin/login/to::to',但这似乎相当草率…

您可以在控制器的"$this->data"中找到传递的参数名称。在您的示例中:$this->data->to与您在url中输入的值相同。

删除该路由。当你想要命名参数时,为什么要有那个路由?

编辑:if so:

Router::connect(
    '/admin/login/*',
    array(
        'admin'      => true,
        'controller' => 'users',
        'action'     => 'login'
    )
);