gpt4 book ai didi

symfony - SQL/Doctrine : getResult in leftJoin returns object and referenced object as 2 entries in array

转载 作者:行者123 更新时间:2023-12-02 16:12:15 25 4
gpt4 key购买 nike

我在 Symfony2/Doctrine 环境中遇到以下问题:

类a与类b有关系,但是这种关系不是通过ORM注释或其他任何东西注册的,因为引用的表是可变的。所以我通过以下方式加入:

$query = $this->createQueryBuilder('a')
->select('a')
->addSelect('b')
->leftJoin('My\Bundle\EntityBundle\Entity\OtherClass','b',\Doctrine\ORM\Query\Expr\Join::WITH,'a.referenceId=b.id')
->getQuery()->getResult($hydrationMode);

结果数组现在包含 a 和 b 的两个对象(有点像

array('a1', 'b1', 'a2', 'b2', .... )

)。我可以再次过滤它,但我觉得这不是要走的路。我尝试过不同的水合模式,但这并没有改变任何东西。

有什么方法可以返回它,从而保留关联吗?

我的意思是这样的:

array(array('a1', 'b1'), array('a2', 'b2'), ...)

最佳答案

您可以通过使用标准 ScalarHydrator 来实现此目的:

$query = $this->createQueryBuilder('a')
->select('a')
->addSelect('b')
->leftJoin('My\Bundle\EntityBundle\Entity\OtherClass','b','WITH','a.referenceId=b.id')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_SCALAR);

关于symfony - SQL/Doctrine : getResult in leftJoin returns object and referenced object as 2 entries in array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25665014/

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