GetarrayResult给出了重复的结果



我正在研究一个Symfony项目,并尝试从我的BDD中获得一些结果所以我在做的是:

$result1 = $this->createQueryBuilder('p')
->leftJoin('p.payments','payments')
->select('p.id, payments.name')
->getQuery()
->getArrayResult();
return $result1;

在我的实体中,我有:

 /**
 * @ORMOneToMany(targetEntity="RBOrdersBundleEntityPayment",mappedBy="purchase",cascade={"persist"})
 */
private $payments;

和我的付款实体:

 /**
 * @ORMManyToOne(targetEntity="RBOrdersBundleEntityPurchase")
 * @ORMJoinColumn(nullable=false, onDelete="CASCADE")
 */
private $purchase;

我拥有的内容:购买可以有多次付款。我的要求给我的结果与付款数量一样多。景象:

[
    { 
        "id" : 1
        "name" : "name1"
    }
    { 
        "id" : 1
        "name" : "name2"
    }
]

我想要什么:我想要一个带有这样的付款名称的结果:

[
    {
        "id" : 1
        "name": ["name1","name2"]
    }
]

您想要的实际上不是"数组结果",您只想使用另一种"水合模式",而不是普通的"水合模式",这需要大量时间。

尝试以下操作:

use DoctrineORMQuery;
...
$query = $em->getRepository('YourRepo')
                ->createQueryBuilder('p')
                ->innerJoin('p.payments','payments')
                ->addSelect('payments')
                ->getQuery()
                ->getResult(Query::HYDRATE_ARRAY);

有关文档的更多信息:

http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/manual/data-hydrators.html

相关内容

  • 没有找到相关文章

最新更新