# Template (Twig) dynamische Variablen

**URL:** https://forum.shopware.com/t/template-twig-dynamische-variablen/99794
**Category:** Shopware 6 (German)
**Tags:** programming, themes--design
**Created:** [24. Mai 2023 um 07:29 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794 "2023-05-24T07:29:42Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)
#### Post date: [24. Mai 2023 um 07:29 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/1 "2023-05-24T07:29:42Z")

</div>

Guten Morgen,

hat jemand schonmal im Template, also mit Twig, dynamisch einen Variablen-Namen erstellt? Ich möchte mithilfe einer Id (aus einer Variable) eine andere Variable abfragen.

In meinem konkreten Beispiel möchte ich mithilfe der

```auto
page.header.navigation.active.id

```

die Child-Kategorien der aktiven Kategorie abfragen und ausgeben. Leider funktioniert es so z.B. nicht, da Twig dann daraus einen String macht:

```auto
{% set vartest = "page.header.navigation.tree."~ page.header.navigation.active.id ~".children" %}

```

Ich habe es schon mit der Twig Attribute-Funktion getestet, aber habe es nicht hinbekommen. Hat jemand eine Idee?

Viele Grüße  
Tom

---

<div class="post-metadata">

### Author: ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)
#### Post date: [25. Mai 2023 um 11:58 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/2 "2023-05-25T11:58:53Z")

</div>

Theoretisch funktioniert es so:

```auto
{% set variableName = 'myVariable' %}
{% set dynamicValue = attribute(_context, variableName) %}

{{ dynamicValue }}

```

oder so:

```auto
{% set dynamicVariables = {
    'variable1': 'Wert 1',
    'variable2': 'Wert 2',
    'variable3': 'Wert 3'
} %}

{% set variableName = 'variable2' %}
{% set dynamicValue = dynamicVariables[variableName] %}

{{ dynamicValue }}

```

Aber mit den wenn ich diese Beispiele auf mein konkreten Anwendungsfall anpasse so mit der `page.header.navigation.active.id` wird mit `{{dump()}}` nur `NULL` ausgegeben. Hat jemand eine Idee woran das liegt?

---

<div class="post-metadata">

### Author: ![tom\_prok](https://avatars.discourse-cdn.com/v4/letter/t/e99b99/32.png) [@tom\_prok](https://forum.shopware.com/u/tom_prok)
#### Post date: [25. Mai 2023 um 14:19 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/3 "2023-05-25T14:19:14Z")

</div>

Habe es dann doch hinbekommen. Falls noch jemand auf der Kategorie-Seite die Child-Kategorien der aktiven Kategorie anzeigen möchte, oder generell mit Twig dynamisch Variablen erstellen möchte hier der Code:

```auto
{% set CatId = page.header.navigation.active.id %}
{% set CatChildren = page.header.navigation.tree[CatId].children %}
{{dump(CatChildren)}}

```

---

<div class="post-metadata">

### Author: ![Marc\_E](https://avatars.discourse-cdn.com/v4/letter/m/3e96dc/32.png) [@Marc\_E](https://forum.shopware.com/u/Marc_E)
#### Post date: [12. Februar 2024 um 13:49 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/4 "2024-02-12T13:49:34Z")

</div>

CatId wird bei mir noch ausgegeben.  
{{dump(CatChildren)}} kommt bei mir jedoch null

---

<div class="post-metadata">

### Author: ![Marc\_E](https://avatars.discourse-cdn.com/v4/letter/m/3e96dc/32.png) [@Marc\_E](https://forum.shopware.com/u/Marc_E)
#### Post date: [13. Februar 2024 um 07:07 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/5 "2024-02-13T07:07:26Z")

</div>

Sorry funktioniert doch. ich muss ein Tippfehler gehabt haben. Ich wollte mir die jeweiligen Unterkategorien auf einer bestimmten Kategorie im Template anzeigen lassen.

Mit

```auto
{% set CatChildren = page.header.navigation.tree[CatId].children %}

```

bekomme ich aber nur die oberste Ebene. Auf einer Unterkategorie die nochmals Kinderkategorien hat funktioniert das nicht.

---

<div class="post-metadata">

### Author: ![pout](https://avatars.discourse-cdn.com/v4/letter/p/f9ae1b/32.png) [@pout](https://forum.shopware.com/u/pout)
#### Post date: [15. April 2024 um 13:13 UTC](https://forum.shopware.com/t/template-twig-dynamische-variablen/99794/6 "2024-04-15T13:13:53Z")

</div>

> [@tom\_prok](#):
>
> ```auto
> {% set CatId = page.header.navigation.active.id %}
> {% set CatChildren = page.header.navigation.tree[CatId].children %}
> {{dump(CatChildren)}}
> 
> ```

Weil tree immer in der obersten Ebene beginnt. Für die zweite Ebene kann man folgendes machen:

```auto
{% set ActiveId = page.header.navigation.active.id %}
{% set ParentId = page.header.navigation.active.parentId %}
{% set CatChildren = page.header.navigation.tree[ParentId].children[ActiveId].children %}
{{dump(CatChildren)}}

```

Es gäbe zwar ein

```auto
page.header.navigation.active.children
page.header.navigation.active.parent

```

die sind aber null. Ich denke das ist ein Bug. Das Vorhandensein dieser Variablem würde einiges leichter machen.
