0

我的分页完美地像这样工作:

var $paginate = array(
            'Article' => array(
                'conditions' => array(
                    'Article.visible' => true),
                'order' => array('Article.creation_date DESC', 'Article.id DESC'),
                'limit' => 11
            )
        );

但我想用这样的发布日期过滤我的文章

var $paginate = array(
            'Article' => array(
                'conditions' => array(
                    'Article.visible' => true,
                    'Article.publication_date <= ' => date('Y-m-d H:i:s')),
                'order' => array('Article.creation_date DESC', 'Article.id DESC'),
                'limit' => 11
            )
        );

但是 date() 函数似乎不被接受。这不是好的语法。有人可以帮助我吗?提前非常感谢。

4

2 回答 2

1

如果要执行此$this->paginate = array()操作,则必须在分页的操作或__construct()函数中使用。

当对象被实例化时,你不能执行这样的函数。

对于运行时任何类型的方法调用都是如此。

于 2012-10-15T09:52:26.847 回答
0

您不能在类级别的数组声明中使用函数。您可以做的是beforeFilter()在控制器中使用回调来初始化$paginate变量,如下所示:

function beforeFilter()
{
    parent :: beforeFilter();

    $this->paginate = array(
            'Article' => array(
                'conditions' => array(
                    'Article.visible' => true,
                    'Article.publication_date <=' => date('Y-m-d H:i:s')),
                'order' => array('Article.creation_date DESC', 'Article.id DESC'),
                'limit' => 11
            )
        );
}
于 2012-10-15T09:57:33.250 回答