关于关系及其计数的SilverStripe-where子句

关于关系及其计数的SilverStripe-where子句,silverstripe,silverstripe-4,Silverstripe,Silverstripe 4,我正在做一个SilverStripe项目。现在我正在查询数据。我想做的是让所有的记录运行where子句,计算它的关系 下面的查询将获取所有新闻页记录。新闻页面有很多博客。因此,他们有一对多的关系: NewsPage::get(); 因此,如果我想让所有博客都出现在新闻页面上,我必须这样做: $newPage->BlogPosts() 现在,我要做的是,我试图获取所有包含多个博客帖子的新闻页面: 像这样的任意代码 $newPage->where('BlogPosts.Count',

我正在做一个SilverStripe项目。现在我正在查询数据。我想做的是让所有的记录运行where子句,计算它的关系

下面的查询将获取所有新闻页记录。新闻页面有很多博客。因此,他们有一对多的关系:

NewsPage::get();
因此,如果我想让所有博客都出现在新闻页面上,我必须这样做:

$newPage->BlogPosts()
现在,我要做的是,我试图获取所有包含多个博客帖子的新闻页面:

像这样的任意代码

$newPage->where('BlogPosts.Count', '>', 1)->get();

如何实现这一点?

在SilverStripe 4中,我们可以对
$has\u many
$many\u many
关系计数进行过滤,如下所示:

NewsPage::get()->filter([
    'BlogPosts.Count():GreaterThan' => 1
]);

要使此功能正常运行,必须有一个名为
BlogPost
$has\u many
$many\u many
BlogPost
的关系。谢谢您的回答。这正是我想要的。干杯