【问题标题】:How to sort and filter children in Silverstripe如何在 Silverstripe 中对子项进行排序和过滤
【发布时间】:2015-06-08 18:56:54
【问题描述】:

我有这个功能:

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,但其中包括发布日期晚于今天的文章。

在我看来,我可能没有正确使用过滤器功能。我哪里错了?

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    我在另一个网站上交叉发布了这个问题并得到了有效的答案。下面是对所需代码的编辑。

    public function LatestArticles() {
        return ArticlePage::get()
            ->filter(array(
                'ParentID' => $this->ID,
                'PublicationDate:LessThanOrEqual' => SS_Datetime::now()
            ))
            ->sort('PublicationDate','desc');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多