想象一个User
与Group
(多对多)关联的实体。我需要显示用户详细信息(以及 - 比如说 - 组名或组数)。在我的控制器(Symfony 2)中,我可以获得所有用户:
$users = $this->em->getRepository('My\Entity\User')
->getAll();
// Assign $users to whatever the view engine
return $this->render('users.html.twig', array('users' => $users));
当然,默认情况下作为关联 LAZY,不会执行任何 JOIN 操作Group
。这在大多数情况下都很好。
但是当我尝试在我的视图中获取组数时会发生什么?
{% for user in users %}
{{ user.groups|length }}
{% endfor %}
结果是:对每个 raw 执行一个查询。即查询的数量等于用户的数量。1000 个用户(没有分页)会发生什么?
如何获取User
类的所有关联实体(即只发出一个查询)?