Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CakePHP中正确执行此路由?_Php_Cakephp_Routing - Fatal编程技术网

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

如何在CakePHP中正确执行此路由?,php,cakephp,routing,Php,Cakephp,Routing,我正在尝试创建一条路线,但在使其正常运行时遇到了一些困难 我有这个动作 // MembershipsController public function professional_info($type = null, $member_id = null) { // Work done here. } 通过url/memberships/professional info/mytype/{user id here} 但是,我想将此url更改为: /mytype-professional-in

我正在尝试创建一条路线,但在使其正常运行时遇到了一些困难

我有这个动作

// MembershipsController
public function professional_info($type = null, $member_id = null) {
  // Work done here.
}
通过url
/memberships/professional info/mytype/{user id here}

但是,我想将此url更改为:

/mytype-professional-info/{user-id-here}
因此,我尝试创建一个路由,该路由自动将
mytype
作为第一个参数传递给
professional\u info
,然后从url接受数字用户id,并将其作为第二个参数传递

我尝试过以下类似的东西:

Router::connect('/mytype-professional-info/:id',
    array('controller' => 'memberships', 'action'=> 'professiona_info', 'mytype'),
    array(
        "pass" => array('id'),
        "id" => '[0-9]+',
    )
);
  • 我不确定如何正确设置这条路线。有人能告诉我如何创建一个路由,为一些参数传递静态值,为其他参数传递url中的动态值吗

非常感谢。

您定义路由的方式将传递类型,但作为第二个参数

如果出于任何原因这是不可接受的,那么您必须显式地传递参数,但是这只能使用命名元素:

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