Symfony 如何使用createQueryBuilder选择count(field)并仍然获取对象

Symfony 如何使用createQueryBuilder选择count(field)并仍然获取对象,symfony,orm,query-builder,Symfony,Orm,Query Builder,我想作为一个整体对象访问细枝中的查询结果。然而,在查询中,我只想从表+count中选择几个字段。在我的例子中,我有一家公司,它由一位所有者拥有,有几名员工。我想创建一个查询,它将提供按员工数量排序的公司列表 $qb = $this->createQueryBuilder('c'); $qb->select('count(e.id), partial c.{id, name}, partial o.{id, name}'); $qb->leftJoin('c.employees'

我想作为一个整体对象访问细枝中的查询结果。然而,在查询中,我只想从表+count中选择几个字段。在我的例子中,我有一家公司,它由一位所有者拥有,有几名员工。我想创建一个查询,它将提供按员工数量排序的公司列表

$qb = $this->createQueryBuilder('c');
$qb->select('count(e.id), partial c.{id, name}, partial o.{id, name}');
$qb->leftJoin('c.employees', 'e');
$qb->innerJoin('c.owner', 'o');
$qb->groupBy('c.id');
当我想要访问公司实体中与normaly相似的其他对象时,查询工作正常,但我得到了一个错误(有一个图像实体集合,每个图像实体都包含图像的路径)。查询不会加载整个公司实体及其依赖项。。。我无法访问“firstImage”方法,该方法返回集合中的第一个图像。我得到这个错误

中不存在键为“0,1”的数组的键“firstImage” MyBundle:List:results.html.twig在第6行

请注意,省略“员工计数”将使其成为整个工作

$qb = $this->createQueryBuilder('c');
$qb->select('partial c.{id, name}, partial o.{id, name}');
$qb->leftJoin('c.employees', 'e');
$qb->innerJoin('c.owner', 'o');
$qb->groupBy('c.id');

对象将是结果数组的第一个元素,count()值将是第二个元素。您可以通过以下方式访问twig中的对象属性和方法:

{{ object[0].firstImage }}
{{ object[0].name }}
员工人数可通过以下方式访问:

{{ object[1] }}
您还可以在查询中定义count()值的名称

$qb->select('count(e.id) AS empQty, partial c.{id, name}, partial o.{id, name}');
然后您可以通过以下方式在细枝中访问此值:

{{ object['empQty'] }}

对象将是结果数组的第一个元素,count()值将是第二个元素。您可以通过以下方式访问twig中的对象属性和方法:

{{ object[0].firstImage }}
{{ object[0].name }}
员工人数可通过以下方式访问:

{{ object[1] }}
您还可以在查询中定义count()值的名称

$qb->select('count(e.id) AS empQty, partial c.{id, name}, partial o.{id, name}');
然后您可以通过以下方式在细枝中访问此值:

{{ object['empQty'] }}