Doctrine2 Multiple Join适用于createQuery,但不适用于queryBuilder

Mar*_*vić 8 php dql symfony doctrine-orm

如果我在没有queryBuilder的情况下使用这个dql进行查询

$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
          ");
Run Code Online (Sandbox Code Playgroud)

一切都很好,但如果我使用(我相信是相同的)查询槽查询生成器这样

 $qb->select('p, g, c')
    ->from('LikeYeah\GoBundle\Entity\Product', 'p')
    ->join('p.garments', 'g')
    ->leftJoin('g.colours', 'c')
    ->orderBy('p.id', 'desc');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"语义错误"第0行,第66行靠近'.colours c,LikeYeah\GoBundle\Entity\Product':错误:识别变量g用于连接路径表达式,但之前没有定义过."

我错过了什么?

ver*_*h23 -1

可能会尝试

  $qb->select('p, g, c')
     ->from('GoBundle:Product', 'p')
     ->join('p.garments', 'g')
     ->leftJoin('g.colours', 'c')
     ->orderBy('p.id', 'desc');
Run Code Online (Sandbox Code Playgroud)

显示您的 $qb init 和 DQL 结果