在url路由中找不到命名参数

时间:2013-03-01 06:28:31

标签: cakephp cakephp-2.0 url-routing

我有一个关于我们的页面网址如下:

base_url/cmsPages/index/cmsid:1

在routes.php中我定义了

Router::connect(
        '/about_us',
        array('controller' => 'cmsPages', 'action' => 'index', 'cmsid' => 1), 
    );

但我cmsid $this->request->params['named']['cmsid']未获得index action

请帮助,我该如何实现这一目标。

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

public function index($cmsid = null) {
    // some code here...
}

// routes.php

Router::connect(
    '/about_us',
    array('controller' => 'cmsPages', 'action' => 'index'),
    array('pass'=>array('cmsid'=>1))
);

有关详细信息,请访问以下链接:

http://book.cakephp.org/2.0/en/development/routing.html#passing-parameters-to-action

答案 1 :(得分:0)

尝试使用此代码获取命名参数

Router::connectNamed(array('id'));
    Router::connect('/about-us:id', array(
        'plugin' => false
        'controller' => 'cmsPages', 
        'action' => 'index'
        ),array(
            "pass"=>array("id")
        ),array(
            'id' => '[0-9]+'
        )
    );

答案 2 :(得分:0)

如果您使用的是命名参数,则可以定义此路线

Router::connect(
    '/about_us',
    array('controller' => 'cmsPages', 'action' => 'index'),
    array('cmsid'=>1)
);