【问题标题】:SilverStripe ORM where clause on relations and its countSilverStripe ORM where 关系及其计数的子句
【发布时间】:2019-06-19 18:33:32
【问题描述】:

我正在从事 SilverStripe 项目。现在我正在查询数据。我想要做的是让所有记录运行 where 子句的关系计数。

以下查询将获取所有 NewsPage 记录。 NewsPage 有很多博客。因此,它们具有一对多的关系:

NewsPage::get();

所以如果我想获取新闻页面上的所有博客,我必须这样做:

$newPage->BlogPosts()

现在,我正在尝试获取包含不止一篇博文的所有新闻页面:

类似这样的任意代码

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

我怎样才能做到这一点?

【问题讨论】:

    标签: silverstripe silverstripe-4


    【解决方案1】:

    在 SilverStripe 4 中,我们可以过滤 $has_many$many_many 关系计数,如下所示:

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

    为此,NewsPage 必须与 BlogPost 具有 $has_many$many_many 关系,称为 BlogPosts

    【讨论】:

    • 感谢您的回答。这正是我所追求的。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 2013-09-24
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多