0

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

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

如您所见,它page位于named数组之外。这是我为自定义分页 URL 定义的路由:

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

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

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

4

1 回答 1

1

根据 CakePHP Book 中的精彩文档:

如果您计划在路由中使用自定义命名参数,则必须使用 Router::connectNamed() 函数让路由器知道它。因此,如果您希望上述路由匹配 /cooks/some_action/type:chef 之类的 url,我们会这样做:

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

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

于 2013-09-11T22:23:29.637 回答