Symfony 如何选择一对多实体大于零的实体

Symfony 如何选择一对多实体大于零的实体,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一个实体任务,一个任务有一个实体, 我想选择比任务中设置的maxParticipant少的任务,我尝试了一些东西,但指望一个任务关系不存在 public function getMissionGroupByCities() { $qb = $this->createQueryBuilder('m') ->select('COUNT(m) as count_project, m_city.id as id, IDENTITY(m_city.nameLibel

我有一个实体任务,一个任务有一个实体, 我想选择比任务中设置的maxParticipant少的任务,我尝试了一些东西,但指望一个任务关系不存在

public function getMissionGroupByCities()
{
    $qb = $this->createQueryBuilder('m')
        ->select('COUNT(m) as count_project, m_city.id as id, IDENTITY(m_city.nameLibelle) as libelle, m_city.latitude, m_city.longitude')
        ->leftJoin('m.project', 'm_project')
        ->leftJoin('m.city', 'm_city')
        ->groupBy('m.city')
        ->where('m_project.state IN (2,3,4)')
        ->andWhere('CURRENT_TIMESTAMP() < m_project.dateEnd')
        ->andWhere('CURRENT_TIMESTAMP() < m.dateBegin')
        ->andWhere('count(m.collects) < m.maxParticipant');

    return $qb->getQuery()->getResult();
}
公共函数getMissionGroupByCities()
{
$qb=$this->createQueryBuilder('m')
->选择('COUNT(m)作为COUNT_项目,m_city.id作为id,IDENTITY(m_city.nameLibelle)作为libelle,m_city.latitude,m_city.longitude')
->leftJoin('m.project','m_project')
->leftJoin('m.city','m_city')
->groupBy(“m.city”)
->其中('m_project.state IN(2,3,4)')
->andWhere('CURRENT_TIMESTAMP()andWhere('CURRENT_TIMESTAMP()andWhere('count(m.collects)getQuery()->getResult();
}
[语义错误]第0行,第346列“收集”附近)< m、 maxParticipant':错误:路径表达式无效。 应为StateFieldPathExpression或SingleValuedAssociationField


我怎样做最后一次测试andWhere('count(m.collects) 尝试使用having clausole:

    ->having('count(m.collects) < m.maxParticipant');
->具有('count(m.collects)
希望获得此帮助

否,col 365靠近“collects”)<':错误:无效的PathExpression。应为StateFieldPathExpression或SingleValuedAssociationField,并带有
计数(m.collects.id)