如何为自定义路由设置cakephp paginator url

时间:2013-04-06 12:54:53

标签: cakephp routing paginator

我正在制作博客和网址路线是这样的 -

Router::connect('/blog/c/:catid/*', 
array('controller' => 'blogarticles', 'action' => 'index'));

它与url as- / blog / c / 3 / other-articles

配合得很好

但是当我在视图中使用paginator时

  echo $this->Paginator->numbers();

它生成url as- / blogarticles / index / other-articles / page:2

在paginator中进行哪些更改以生成正确的URL。

请建议可能的解决方案,提前致谢

2 个答案:

答案 0 :(得分:2)

这可以解决您的问题:

$this->Paginator->options(
    array(
        'controller' => 'blog',
        'action' => 'c',
        $catid,
        $title
    )
);

诀窍是将博客作为控制器,将c作为动作,并将所有其他变量(不限于$ catid和$ title)作为附加参数依次传递!

注意:我在这里假设您已经从控制器“设置”$ catid和$ title,以及当前的“类别ID”和“标题”。我还假设您的网址始终采用以下格式:/ blog / c /:catid /:title

您可能还想查看我对类似问题的回答:https://stackoverflow.com/a/25097693/2862423

答案 1 :(得分:0)

您想要为该视图设置PaginatorHelper的选项:

<?php $this->Paginator->options(array('url' => '/blog/c/3/other-articles')); ?>

PaginatorHelper选项功能上的CakePHP Book部分:http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#modifying-the-options-paginatorhelper-uses