Si estoy usando consultas sin QueryBuilder con este DQLDoctrine2 múltiple Ingreso obras con CreateQuery pero no con QueryBuilder
$query = $this->_em
->createQuery("SELECT p, g, c
FROM LikeYeah\GoBundle\Entity\Product p
JOIN p.garments g
LEFT JOIN g.colours c
ORDER BY p.id DESC
");
todo está bien, pero si uso el (lo que me creer es lo mismo) a través de consultas constructor de consulta como esta
$qb->select('p, g, c')
->from('LikeYeah\GoBundle\Entity\Product', 'p')
->join('p.garments', 'g')
->leftJoin('g.colours', 'c')
->orderBy('p.id', 'desc');
me sale el siguiente error:
"error semántico] línea 0, col 66' .colours cerca de c, LikeYeah \ GoBundle \ Entit y \ Product ': Error: Variable de identificación g utilizada en la expresión de ruta de unión, pero no se definió antes. "
¿Qué me falta?
No puedo ver 'unirse' en la documentación, hay 'leftJoin' y 'innerJoin' solamente. Tal vez el problema es que tu 'join' es en realidad un leftJoin y para algunas filas no define 'g' porque no hay nada para unir ... –
Wojciech, eso no es todo, el QueryBuilder tiene un método llamado ' 'join()' 'eso es básicamente un alias de' 'innerJoin()' '. – Quentin