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,我要去看看。到目前为止,谢谢你。不完全确定,但查询应该看起来像DQLselect l,count(p)as c from Location l用p.status=:status group by l.id have c>=10
条令中也有函数,可能会有所帮助somehow@Flying,我要去看看。谢谢你。