Jeśli używam zapytań bez QueryBuilder z tym DQLDoctrine2 Multiple Dołącz prace z createQuery ale nie z 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
");
wszystko jest w porządku, ale jeśli mogę użyć (co wierzę jest taka sama) koryta zapytania kreator zapytań jak ten
$qb->select('p, g, c')
->from('LikeYeah\GoBundle\Entity\Product', 'p')
->join('p.garments', 'g')
->leftJoin('g.colours', 'c')
->orderBy('p.id', 'desc');
pojawia się następujący błąd:
„semantyczne error] linii 0 kol 66 w pobliżu” .colours c, LikeYeah \ GoBundle \ Entit y \ Produkt ": Błąd: zmienna identyfikacyjna g użyta w wyrażeniu ścieżki łączenia, ale nie została wcześniej zdefiniowana."
Czego mi brakuje?
nie widzę 'dołączyć' w dokumentacji, nie ma 'leftJoin' i 'innerJoin' tylko. Być może problem polega na tym, że twoje 'join' jest w rzeczywistości leftJoin i dla niektórych wierszy nie definiuje 'g', ponieważ nie ma co dołączać .... –
Wojciech, to nie to, QueryBuilder ma metodę o nazwie ' 'join()' ', który jest w zasadzie aliasem' 'innerJoin()' '. – Quentin