如何在CakePHP中正确执行此路由?

时间:2014-11-17 23:19:47

标签: php cakephp routing

我试图创建一条路线,但我很难让它发挥作用。

我有这个动作

// MembershipsController
public function professional_info($type = null, $member_id = null) {
  // Work done here.
}

可以通过网址/memberships/professional-info/mytype/{user-id-here}

轻松访问

但是,我想将此网址更改为:

/mytype-professional-info/{user-id-here}

出于这个原因,我试图创建一个自动将mytype作为第一个参数传递给professional_info的路由,然后从url接受一个数字用户id,并将其作为第二个参数传递

我尝试了类似以下的内容:

Router::connect('/mytype-professional-info/:id',
    array('controller' => 'memberships', 'action'=> 'professiona_info', 'mytype'),
    array(
        "pass" => array('id'),
        "id" => '[0-9]+',
    )
);
  • 我不确定如何正确设置此路线。有人可以向我解释如何创建一个为某些参数传递静态值的路由,以及来自其他参数的url的动态值吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您已经定义了它将传递类型的路线,但作为第二个参数。

如果由于某种原因这是不可接受的,那么你必须明确地传递参数,但这只能使用命名元素:

Router::connect(
    '/mytype-professional-info/:id',
    array(
        'controller' => 'memberships',
        'action'=> 'professional_info',
        'type' => 'mytype'
    ),
    array(
        'pass' => array('type', 'id'),
        'id' => '[0-9]+',
    )
);