未使用Symfony2 join,触发了不必要的查询

时间:2012-04-23 11:46:57

标签: symfony doctrine doctrine-orm twig

我有以下问题: 我的带有连接的查询包含所有必要的数据,但symfony / twig会创建更多查询 每个{{entity.group.name}}生成一个新查询

控制器:

/**
 * @Route("/gameplan", name="game_plan")
 * @Template()
 * //@Secure(roles="ROLE_USER")
 */
public function indexAction()
{
    $em = $this->getDoctrine()->getEntityManager();
    $entities = $em->getRepository('OnemediaFeedFighterBundle:Game')->createQueryBuilder('q')
            ->leftJoin('q.group', 'g')
            ->leftJoin('q.teamGame', 'tg')
            ->leftJoin('tg.Team', 't')
            ->getQuery()->getResult();

    return array('entities' => $entities);
}

模板:

{% extends "::layout.html.twig" %}
{% block content %}
<h1>Game plan</h1>

    {% for entity in entities %}
       {{ entity.place }}<br />{{ entity.group.name }}<br />
    {% endfor %}
{% endblock content %}

1 个答案:

答案 0 :(得分:3)

您可以通过添加->select("q, g")

来实现此目的