Symfony主义执行leftJoin并获得所有结果

时间:2018-08-28 20:09:02

标签: php symfony doctrine

我正在使用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循环,但目前无法使用。我希望能够不循环显示所有名称

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

因此,看来ProfileContacts之间存在某种联系,但您仍然使用profileid来加强这种联系-这已经过时了。

对于返回的单个结果,我认为您使用了错误的groupBy方法,但是我不能确定没有看到正在运行的实体。

无论如何,在这种情况下,我肯定会使用getArrayResult()函数(而不是getResult()),该函数会返回数组。尝试也删除groupBy并看看会得到什么。

在您使用实体更新问题后,我可以扩大答案。