Doctrine 2 поддерживает множество способов создания запроса.
Один из них - классический, через менеджер сущностей;
$this->getEntityManager()
->createQuery('SELECT p FROM AcmeStoreBundle:Product p ORDER BY p.name ASC')
->getResult();
А другой - с помощью построителя запросов:
$qb = $this->createQueryBuilder('c');
//...
->leftJoin('c.city_state', 's')
->where("CONCAT(c.name) LIKE :$field")
->setParameter("$field", "%$smartbox%", \PDO::PARAM_STR)
->setMaxResults($limit);
На первый взгляд, единственная причина, по которой я бы использовал последний, - это помощь в построении условных запросов.
if($value == 'something')
$qb->add('where', '...');
Я бродил, есть ли другие причины, которые я бы предпочелпервый или второй способ написать обычный запрос?
И есть ли альтернативные способы создания запроса в Doctrine 2 (кроме собственных запросов)?
Редактировать: я только что нашел похожеевопрос здесь , но ответ не был принят.