具有关系数量条件的主义查询

时间:2019-02-26 14:24:07

标签: symfony doctrine-orm

我有两个实体:LocationProgram。他们有多对多的关系。程序具有属性$status,可以是'published''unpublished'

现在,我想运行一个查询(使用学说查询构建器)以返回我的所有Location实体,这些实体与至少10个Program实体有关系,且$status'published'

到目前为止我的代码

    public function findLocationsOfPublishedPrograms()
{
    $qb = $this->createQueryBuilder('l')
        ->innerJoin('l.programs', 'p')
        ->andWhere('p.status = \'published\'')
        ->getQuery()->getResult();
    return $qb;
}

此查询将恢复具有至少一个发布程序的所有Location实体。但是,有什么方法可以设置条件以仅返回至少有 10 个发布程序的Location实体?

1 个答案:

答案 0 :(得分:1)

您可以将innerJoin WITH p.status =发布。然后在其中计数为p。*> = 10

带条件的innerJoin示例在文档中: https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/query-builder.html#working-with-querybuilder