Symfony Doctrine执行leftJoin并获得所有结果

问题描述 投票:0回答:1

我正在使用Symfony 2,我有这个查询,我想获得所有用户的所有联系人姓名:

$results = $es->createQueryBuilder()
->select('m.id, d.contactName')
->from('AppBundle:Profile', 'm')
->leftJoin('AppBundle:Contacts', 'd','with','d.profileid = m.id')
->groupBy('m.id')
->getQuery()
->getResult();

问题是,当我想显示每个用户的联系人姓名时,我只得到一个名字。我可以在每个用户上使用for循环,但我现在不能使用它。我希望能够显示所有名称而不循环

我在这里错过了什么?

php symfony doctrine
1个回答
0
投票

因此,似乎ProfileContacts与某种关系有关,但你仍然使用profileid来强制执行这种关系 - 这完全是过时的。

至于返回的单个结果,我认为你以错误的方式使用groupBy,但是如果没有看到实体,我无法确定。

无论如何,在这种情况下,我肯定会为getArrayResult()函数(而不是getResult()),它将返回,好吧,数组。尝试删除groupBy,看看你得到了什么。

一旦您使用实体更新问题,我可以扩展我的答案。

© www.soinside.com 2019 - 2024. All rights reserved.