我有这个功能:
public function LatestArticles() {
return $this->Children()
->filter('PublicationDate:LessThanOrEqual', SS_Datetime::now())
->sort('PublicationDate','desc');
}
它根本没有输出任何东西。如果我把它切换到这个:
public function LatestArticles() {
return ArticlePage::get()
->filter('PublicationDate:LessThanOrEqual', SS_Datetime::now())
->sort('PublicationDate','desc');
}
它输出我的ArticlePages,但(显然)包括所有ArticlePages网站,而不仅仅是子ArticlePages。
如果我将代码更改为:
public function LatestArticles() {
return $this->Children()
->sort('PublicationDate','desc');
}
这会输出我所有的孩子的ArticlePages,但包括发布日期晚于今天的文章。
在我看来,我可能没有正确使用过滤功能。我哪里错了?
答案 0 :(得分:2)
我在另一个网站上发布了这个问题并得到了一个有效的答案。下面是对所需代码的编辑。
public function LatestArticles() {
return ArticlePage::get()
->filter(array(
'ParentID' => $this->ID,
'PublicationDate:LessThanOrEqual' => SS_Datetime::now()
))
->sort('PublicationDate','desc');
}