【问题标题】:Paginate in CakePHP: creating news archive with months instead of pages在 CakePHP 中分页:使用月份而不是页面创建新闻存档
【发布时间】:2010-08-28 08:46:06
【问题描述】:

我遇到了 cakephp 分页的问题。目前,我的分页是相当标准的。在 x 结果之后,它会创建第二个页面。以此类推。

我想做的是按月订购。由于它是一个新闻档案,我希望能够选择月份而不是页面。

所以改为:

  • 第 1 页
  • 第 2 页
  • 第 3 页

我想要:

  • 2010 年 1 月
  • 2010 年 2 月
  • 2010 年 3 月

这怎么可能?我似乎找不到它。我当前的代码:

var $paginate = array('limit' => 50, 'page' => 1, 'order'=>array('Newsitem.created'=>'DESC'));

提前致谢!!

【问题讨论】:

    标签: cakephp pagination


    【解决方案1】:

    分页是 LIMIT 行计数和记录数偏移量的函数,而不是数据条件。因此,您将无法使用 cake 中的分页功能来完成此操作。您将需要创建一个自定义解决方案来完成此操作。如果您继续使用内置蛋糕分页解决此问题,您将继续碰壁。

    现在,话虽如此,一种解决方案是按月分页。因此,您可以在左侧有不同的链接显示月份(即 2010 年 1 月、2010 年 2 月等),当他们选择其中一个选项时,它将对给定日期的所有结果进行分页。

    【讨论】:

      【解决方案2】:

      这可能是您考虑的替代方案(它不直接符合您的要求)。

      CakePHP Filter Plugin

      它允许您按记录集中的任何列过滤分页数据。

      在任何标题 (

      ) 下,您都可以添加一个输入,您可以在其中输入过滤条件(例如,对于 Newsitem.created,您可以输入:2010-08 以仅显示/分页 2010 年 8 月的新闻站点) .然后单击过滤器按钮,您的页面将重新加载,仅显示与过滤条件匹配的记录。也适用于 Ajax 分页。

      我今天用这个屏幕测试了这个:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 1970-01-01
        • 2013-06-29
        • 1970-01-01
        • 1970-01-01
        • 2010-10-15
        • 2013-07-28
        相关资源
        最近更新 更多