SilverStripe ORM where 关系子句及其计数
SilverStripe ORM where clause on relations and its count
我正在从事 SilverStripe 项目。现在我正在查询数据。我想要做的是获取所有记录 运行 where 子句关于其关系的计数。
下面的查询将获取所有 NewsPage 记录。 NewsPage 有很多博客。所以,他们是一对多的关系:
NewsPage::get();
所以如果我想获取新闻页面上的所有博客,我必须这样做:
$newPage->BlogPosts()
现在,我要做的是尝试获取所有拥有多个博客的新闻页面 post:
类似这样的任意代码
$newPage->where('BlogPosts.Count', '>', 1)->get();
我怎样才能做到这一点?
在 SilverStripe 4 中,我们可以过滤 $has_many
或 $many_many
关系计数,如下所示:
NewsPage::get()->filter([
'BlogPosts.Count():GreaterThan' => 1
]);
要使其正常工作,NewsPage
必须与 BlogPost
具有 $has_many
或 $many_many
关系,称为 BlogPosts
。
我正在从事 SilverStripe 项目。现在我正在查询数据。我想要做的是获取所有记录 运行 where 子句关于其关系的计数。
下面的查询将获取所有 NewsPage 记录。 NewsPage 有很多博客。所以,他们是一对多的关系:
NewsPage::get();
所以如果我想获取新闻页面上的所有博客,我必须这样做:
$newPage->BlogPosts()
现在,我要做的是尝试获取所有拥有多个博客的新闻页面 post:
类似这样的任意代码
$newPage->where('BlogPosts.Count', '>', 1)->get();
我怎样才能做到这一点?
在 SilverStripe 4 中,我们可以过滤 $has_many
或 $many_many
关系计数,如下所示:
NewsPage::get()->filter([
'BlogPosts.Count():GreaterThan' => 1
]);
要使其正常工作,NewsPage
必须与 BlogPost
具有 $has_many
或 $many_many
关系,称为 BlogPosts
。