CakePHP中的Paginate:使用月份而不是页面创建新闻档案

时间:2010-08-28 08:46:07

标签: cakephp pagination

我遇到了cakephp分页的问题。目前,我的分页是相当标准的。 x结果后,它会创建第二页。等等。

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

所以相反:

  • Page 1
  • Page 2
  • Page 3

我想:

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

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

  

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

提前感谢!!

2 个答案:

答案 0 :(得分:1)

分页是LIMIT行计数和记录数偏移的函数,而不是数据条件。因此,您将无法使用蛋糕中的分页功能来实现此目的。您需要创建一个自定义解决方案来完成此任务。如果你继续通过蛋糕分页来解决这个问题,那么你将继续打砖墙。

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

答案 1 :(得分:0)

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

CakePHP Filter Plugin

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

在任何标题(< th>)下,您将能够添加输入,您可以在其中输入过滤条件(例如,对于Newsitem.created,您可以输入:2010-08,仅显示/分页2010年8月的Newsitems )。然后单击过滤器按钮,页面重新加载,仅显示与过滤条件匹配的记录。也适用于Ajax分页。

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

CakePHP Filter Plugin