无法使用CakePHP设置命名参数

时间:2013-09-11 21:24:36

标签: php cakephp pagination

我正在使用带有自定义路线的CakePHP分页助手,但它似乎忽略了页码。我相信这是因为请求中不存在命名参数page,我已使用debug($this->request->params);进行了验证:

array(
    'plugin' => null,
    'controller' => 'things',
    'action' => 'index',
    'named' => array(),
    'pass' => array(),
    'page' => '2'
)

正如您所看到的,它将page置于named数组之外。这是我为自定义分页网址定义的路线:

Router::connect('/things/:page', array('controller' => 'skins', 'action' => 'index'), array('page' => '[0-9]+'));

显然,这意味着无论页码是什么,我只点击第一个结果显示。

如何修改路由以将页面正确插入命名参数数组?我不想直接从控制器直接修改$this->request->params['named']

1 个答案:

答案 0 :(得分:1)

根据CakePHP书中的精彩文档:

  

如果您计划在路线中使用自定义命名参数,那么您   必须使用Router :: connectNamed()让路由器知道它   功能。所以,如果你想让上面的路线匹配网址   / cooks / some_action / type:我们做的主厨:

Router::connectNamed(array('type'));
Router::connect(
    '/cooks/:action/*', array('controller' => 'users')
);

http://book.cakephp.org/2.0/en/development/routing.html#routes-configuration