gpt4 book ai didi

php - Doctrine2 Multiple Join 适用于 createQuery 但不适用于 queryBuilder

转载 作者:可可西里 更新时间:2023-11-01 12:39:31 27 4
gpt4 key购买 nike

如果我在没有 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
");

一切都很好,但是如果我像这样使用(我认为是相同的)查询槽

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

我收到以下错误:

“语义错误] 第 0 行,'.colours c, LikeYeah\GoBundle\Entity\Product' 附近的第 66 列:错误:连接路径表达式中使用了标识变量 g,但之前未定义。”

我错过了什么?

最佳答案

试试这个:在加入后使用 addSelect:

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

关于php - Doctrine2 Multiple Join 适用于 createQuery 但不适用于 queryBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com