Doctrine2 in Symfony2: Wie kann ich sehen, welcher Objektaufruf zu einer Abfrage führt?

Ich verwende Symfony2 mit Doctrine2. Für mein Projekt habe ich Entities mit verschiedenen Assoziations-Mappings erstellt. Zuerst sah ich ungefähr 7 Abfragen, um ein Objekt anzufordern, also entschied ich mich, "eifrig zu laden" und es reduzierte sich auf drei Abfragen.

Zwei davon sehen jedoch in der Symfony-Symbolleiste (Profiler), die direkt nacheinander aufgerufen wird, gleich aus. Nach meinem Verständnis ist eine dritte Abfrage in meinem Code nicht erforderlich.

Wo muss ich meine Haltepunkte in den PHP-Dateien der Doktrin setzen, um zu sehen, in welcher Codezeile die Doktrin eine neue Abfrage aufruft? Oder gibt es eine andere Lösung, um zu sehen, wie ich diese Anfragen optimieren kann?

Aktualisieren:

Nachdem ich über die Antwort von Artworkad nachgedacht habe, muss ich viel detaillierter vorgehen. Dies liegt daran, dass ich keine 2-Objekt-Anforderung über meinen Controller stelle. Aber vielleicht hat es etwas mit meinem Zweig zu tun?

Mein Controller
public function gebietAction($gebiet){
        $em = $this->getDoctrine()->getEntityManager();
        /* @var $gebietobj Gebiet */
        $gebietobj = $em->getRepository('ACGSigwxBundle:Gebiet')->findOneBy(array('short' => $gebiet));
        if (!$gebietobj) {
            throw $this->createNotFoundException('Kann das angegebene Gebiet nicht finden!');
        }
        return $this->render('ACGSigwxBundle:Sigwx:sigwx.html.twig',array("gebiet"=>$gebietobj));
    }
Meine Zweig-Schablone
{% extends "ACGSigwxBundle::layout.html.twig" %}

{% block content %}
    <h1>{{ gebiet.getName() }}</h1>
    <p>My sectors:</p>
    <ul>
    {% for gs in gebiet.getGebietssektoren() %}
        <li>{{ gs.getSektor().getName() }}</li>
    {% endfor %}
    </ul>
{% endblock %}
Objektzuordnung

Es gibt eine VereinigungGebiet n:n Sektor mit Attributen. Also habe ich gemachtGebiet 1:n Gebietsektoren n:1 Sektor mit Standard [doctrine2 Assoziationszuordnungen (http://docs.doctrine-project.org/en/latest/reference/association-mapping.html) ManyToOne undOneToMany

Meine 3 aufgelisteten Abfragen von Profiler
SELECT t0.id AS id1, t0.name AS name2, t0.short AS short3, t0.parent_id AS parent_id4 FROM gebiet t0 WHERE t0.short = ? LIMIT 1 Parameters: [app]

SELECT t0.id AS id1, t0.position AS position2, t0.size AS size3, t0.gebiet_id AS gebiet_id4, t0.sektor_id AS sektor_id5, t6.id AS id7, t6.name AS name8, t6.typ AS typ9, t6.erweitert AS erweitert10, t6.sortorder AS sortorder11 FROM gebietssektoren t0 INNER JOIN sektor t6 ON t0.sektor_id = t6.id WHERE t0.gebiet_id = ? Parameters: [1]

SELECT t0.id AS id1, t0.position AS position2, t0.size AS size3, t0.gebiet_id AS gebiet_id4, t0.sektor_id AS sektor_id5, t6.id AS id7, t6.name AS name8, t6.typ AS typ9, t6.erweitert AS erweitert10, t6.sortorder AS sortorder11 FROM gebietssektoren t0 INNER JOIN sektor t6 ON t0.sektor_id = t6.id WHERE t0.gebiet_id = ? Parameters: [1]

Antworten auf die Frage(1)

Ihre Antwort auf die Frage