Symfony 带关系数条件的条令查询

Symfony 带关系数条件的条令查询,symfony,doctrine-orm,Symfony,Doctrine Orm,我有两个实体:位置和程序。他们有一种多对多的关系。程序具有属性$status,可以是'published'或'unpublished' 现在,我希望运行一个查询(使用条令查询生成器)来返回我的所有位置实体,这些实体与至少10个程序实体有关系,且$status为'published' 到目前为止我的代码 public function findLocationsOfPublishedPrograms() { $qb = $this->createQueryBuilder('l

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

现在,我希望运行一个查询(使用条令查询生成器)来返回我的所有
位置
实体,这些实体与至少10个
程序
实体有关系,且
$status
'published'

到目前为止我的代码

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

此查询重新运行至少有一个已发布程序的所有
Location
实体。但是,我有没有办法设置一个条件,只返回至少有10个已发布程序的
Location
实体

您可以使用p.status=published进行innerJoin。然后使用p.*>=10的计数添加where

文档中提供了带条件的innerJoin示例:
您可以使用p.status=published进行innerJoin。然后使用p.*>=10的计数添加where

文档中提供了带条件的innerJoin示例:

count()
是一个聚合,您的查询需要至少包含
group by
子句
count()
是一个聚合,您的查询需要至少包含
group by
子句不完全确定,但查询应该看起来像DQL
选择l,count(p)当c从位置l加入程序p时,p.status=:状态组由l.id组成,c>=10somehow@Flying,我要去看看。到目前为止,谢谢你。不完全确定,但查询应该看起来像DQL
select l,count(p)as c from Location l用p.status=:status group by l.id have c>=10
条令中也有函数,可能会有所帮助somehow@Flying,我要去看看。谢谢你。