【问题标题】:how to set cakephp paginator url for custom route如何为自定义路由设置 cakephp 分页器 url
【发布时间】:2013-04-06 12:54:52
【问题描述】:

我在做博客,url路由是这样的-

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

它适用于 url as- /blog/c/3/other-articles

但是当我在视图中使用分页器时

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

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

应该在分页器中进行哪些更改以生成正确的 url。

请提出可能的解决方案,在此先感谢

【问题讨论】:

    标签: cakephp routing paginator


    【解决方案1】:

    这应该可以解决您的问题:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我认为问题是如何生成一个为:catid中的所有值服务的路由,而不仅仅是3的值。
      猜你喜欢
      • 2011-06-29
      • 2011-04-04
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2013-12-20
      相关资源
      最近更新 更多