# Assoziationen von Assoziationen mit dem QueryBuilder hinzufügen.

**URL:** https://forum.shopware.com/t/assoziationen-von-assoziationen-mit-dem-querybuilder-hinzufugen/47128
**Category:** Programmierung
**Created:** [26. Juli 2017 um 13:41 UTC](https://forum.shopware.com/t/assoziationen-von-assoziationen-mit-dem-querybuilder-hinzufugen/47128 "2017-07-26T13:41:25Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![langnickel](https://avatars.discourse-cdn.com/v4/letter/l/3ec8ea/32.png) [@langnickel](https://forum.shopware.com/u/langnickel)
#### Post date: [26. Juli 2017 um 13:41 UTC](https://forum.shopware.com/t/assoziationen-von-assoziationen-mit-dem-querybuilder-hinzufugen/47128/1 "2017-07-26T13:41:25Z")

</div>

Ich habe 2 Models, wobei Model A eine OneToMany Assoziation auf Model B hat.

Model B hat eine Assoziation auf ein Media Model.

Wenn ich nun dem&nbsp;QueryBuilder von Model A wie folgt schreibe, bekomme ich die Daten von Model B. Was muss ich nun ändern, damit ich auch die Media Daten von den ganzen Model Bs bekomme?

```
    public function getAQuery($aID) {
        $builder = $this->getBrochureQueryBuilder($aID);
        return $builder->getQuery();
    }

    public function getAQueryBuilder($aID) {
        $builder = $this->getEntityManager()->createQueryBuilder()
            ->select(['a', 'bs'])
            ->from(A::class, 'a')
            ->leftJoin('a.bs', 'bs')
            ->where('a.id = :aId')
            ->setParameter('aId', $aID);
        return $builder;
    }

// für mit getArrayResult sinngemäß zu folgendem ergebnis.
a = [
  id => 1,
  bs => [
    [id => 101, a_id => 1, media_id => 105],
    [id => 102, a_id => 1, media_id => 109],
    [id => 103, a_id => 1, media_id => 117],
  ]
]

```

Ich möchte aber nun folgendes Ergebnis:

```
a = [
  id => 1,
  bs => [
    [id => 101, a_id => 1, media_id => 105, media: [id => 105, path => '..', ...] ],
    [id => 102, a_id => 1, media_id => 109, media: [id => 109, path => '..', ...] ],
    [id => 103, a_id => 1, media_id => 117, media: [id => 117, path => '..', ...] ]
  ]
]

```

Auch mit fetch mode EAGER läd er die assoziationen nicht, sprich die spalte media\_id ist da aber media nicht.

---

<div class="post-metadata">

### Author: ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)
#### Post date: [26. Juli 2017 um 18:12 UTC](https://forum.shopware.com/t/assoziationen-von-assoziationen-mit-dem-querybuilder-hinzufugen/47128/2 "2017-07-26T18:12:37Z")

</div>

Hi langnickel,

wie du es bei Model B schon gemacht hast, musst du natürlich auch das Media-Model mit einem Join aufnehmen:

```
/* ... */
$builder = $this->getEntityManager()->createQueryBuilder()
    ->select(['a', 'bs', 'media']) // neu: media wird auch selektiert
    ->from(A::class, 'a')
    ->leftJoin('a.bs', 'bs')
    ->leftJoin('bs.media', 'media') // neu: leftJoin in die Media-Tabelle
    ->where('a.id = :aId')
    ->setParameter('aId', $aID);
/* ... */

```

Viele Grüße

---

<div class="post-metadata">

### Author: ![langnickel](https://avatars.discourse-cdn.com/v4/letter/l/3ec8ea/32.png) [@langnickel](https://forum.shopware.com/u/langnickel)
#### Post date: [26. Juli 2017 um 20:05 UTC](https://forum.shopware.com/t/assoziationen-von-assoziationen-mit-dem-querybuilder-hinzufugen/47128/3 "2017-07-26T20:05:55Z")

</div>

strange, das war mein erster versuch und ich bekam ne exception als geschenk.&nbsp;ich probiers morgen gleich nochmal aus 🙂

Oki, funktioniert 🙂
