如果我使用的查詢,而不QueryBuilder的這個DQLDoctrine2多重聯用的createQuery作品,但不與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
");
一切都很好,但如果我用(我相信的是一樣的)查詢低谷查詢生成器這樣
$qb->select('p, g, c')
->from('LikeYeah\GoBundle\Entity\Product', 'p')
->join('p.garments', 'g')
->leftJoin('g.colours', 'c')
->orderBy('p.id', 'desc');
我得到以下錯誤:
「語義錯誤] 0行,列66「附近.colours C,LikeYeah \ GoBundle \ Entit y \ Product':錯誤:標識變量g在連接路徑表達式中使用,但之前未定義。「
我錯過了什麼?
我看不到文檔「加入」,有「leftJoin」,只有「innerJoin」。也許問題是你的'join'實際上是一個leftJoin,對於某些行它沒有定義'g',因爲沒有什麼可以加入.... – 2012-02-04 20:36:36
Wojciech,那不是,QueryBuilder有一個名爲' 'join()''基本上就是''innerJoin()''的別名。 – Quentin 2012-02-05 22:35:35