如何在带有连接的查询构建器中选择特定字段


How do I select specific fields in QueryBuilder with joins

我正在使用Symfony 2.7.7和Doctrine 2。我有一个连接四个表的查询。在我的 twig 文件中,我只需要从各个表中渲染三位信息。我想只选择这些字段来希望优化查询,而不是返回所有内容。

这是我当前的选择代码:

$qb = $em
        ->getRepository('BillingBundle:InvoiceLine')
        ->createQueryBuilder('il')
        ->select('a.id, o.organizationName, i.id')

我继续加入其他桌子,等等。问题是 i.id 正在覆盖 a.id 因此只返回两个元素而不是三个元素。

如何为所选字段设置别名或创建关联数组?

你可以做:

>select('a.id AS a_id, o.organizationName, i.id AS i_id')

然后,您可以分别在$obj->a_id和$obj->i_id下访问它们。