Я должен выполнить этот запрос:Symfony2 подзапрос в Doctrine менеджера сущности
SELECT * FROM (SELECT * FROM product WHERE car = 'large' ORDER BY onSale DESC) AS product_ordered GROUP BY type
В Symfony2 с помощью менеджера объекта.
Мой основной конструктор запросов будет:
$query = $em->getRepository('AutomotiveBundle:Car')
->createQueryBuilder('p')
->where('pr.car = ?1')
->andWhere('pr.status = 1')
->orderBy('pr.onSale', 'DESC')
->setParameter(1, $product->getName())
->groupBy('p.type')
->getQuery();
Но я не могу работать, как добавить в подзапрос к этому.
Ive пытался сделать отдельный запрос и присоединиться к нему, как:
->andWhere($query->expr()->in('pr.car = ?1',$query2->getQuery()));
Но я получаю:
Call to undefined method Doctrine\ORM\Query::expr()
Я считаю, что это решение игнорирует ограничения на подзапроса @cerad. Например, $ qbGameId-> setMaxResults (20), и когда u распечатывает $ qbGames-> getDQL(), u не будет видеть ограничение на подзапрос. – EnchanterIO
Одно из возможных решений: http://stackoverflow.com/questions/15877287/symfony2-doctrine-expr-subquery-error?answertab=active#tab-top – EnchanterIO