symfony中的查询和子查询

时间:2016-10-28 18:10:45

标签: php mysql symfony doctrine

我在 symfony 查询构建器中使用查询和子查询,但在执行它时,它会返回错误。

我的代码是:

 $subQb = $em->createQueryBuilder();

            $subquery = $subQb->select('COUNT(v.id)')
                ->from('AdminBundle:Visitsite', 'v')
                ->where('v.site = s.id')
                ->Andwhere('v.createdate > :date')
                ->setParameter('date', $date->format('Y-m-d'))
                ->getDQL();

            $subQb2 = $em->createQueryBuilder();
            $subquery2 = $subQb2->select('quantity')
                ->from('AdminBundle:Limitviewday', 'l')
                ->where($subQb2->expr()->eq('s.limitviewday', 'l.id'))
                ->getDQL();

            $qb = $em->createQueryBuilder();
            $query = $qb->select('s')
                ->from('AdminBundle:Sites', 's')
                ->where('s.quantity > 1')
                ->Andwhere('s.status = 1')
                ->Andwhere($qb->expr()->lte("($subquery)", "($subquery2)"));

            $settlements = $query->getQuery()->getResult();

我的结果是

  

[语义错误]第0行,第183行靠近'数量来自':错误:未定义“数量”。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

我认为错误来自:

$subquery2 = $subQb2->select('quantity') // Expected '<alias>' or '<alias>.<property>'

代替:

$subquery2 = $subQb2->select('l.quantity')