# Zugriff auf eine Variable aus einer Twig Loop heraus

**URL:** <https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490>\
**Category:** Shopware 6 (German)\
**Created:** [28. April 2023 um 08:15 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490 "2023-04-28T08:15:39Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [28. April 2023 um 08:15 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/1 "2023-04-28T08:15:39Z")

</div>

Hallo, laut der Twig-Dokumentation sollte dies funktionieren, aber ich kann es nicht in der Shwopare 6-Vorlage zum Laufen bringen:

```auto
{% set temp2 = "" %}
{% for number1 in 1..100 %}
    {% set temp2 = context.context.extensions.PropertiesExtension1[number1] %}
{% endfor %}
{{ temp2 }}

```

Das Ergebnis ist nur der letzte [100] Key.

Aber es funktioniert wie folgt:

```auto
{% set temp2 = "" %}
{% for number1 in 1..100 %}
    {% set temp2 = context.context.extensions.PropertiesExtension1[number1] %}
{{ temp2 }}
{% endfor %}

```

Kann mir jemand helfen?

---

<div class="post-metadata">

**Author:** ![NickJ](https://avatars.discourse-cdn.com/v4/letter/n/85e7bf/32.png) [@NickJ](https://forum.shopware.com/u/NickJ)\
**Post date:** [28. April 2023 um 09:36 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/2 "2023-04-28T09:36:57Z")

</div>

Weil du bei jeder Schlaufeniteration den Wert neu setzt kommt auch nur der letzte Wert raus.  
Was möchtest du konkret herausbekommen?

---

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [28. April 2023 um 10:28 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/3 "2023-04-28T10:28:24Z")

</div>

Oh, wirklich. Ich sollte etwas schlafen… Danke 🙂  
Ich muss eine String aus der Loop herausholen, die ich verwenden kann:

```auto
and k != "0046b0fe5bde48b2b1a3d3ff6126bb10" and k != "00d4d08cbb744d9ca94d92c42a2ab1b3" and k != "03532c02597a4d97913926bdbbff973f" and k != "03e62ce1518c4e18ab655909459a06dd" and k != "03ef7f5772924e5980a30c041dc92494" and k != “04c225dfa3e3453bb29e6e22cc3aa690"

```

Ich habe diesen Code. Ich habe keine funktionierende Möglichkeit gefunden, zusätzliche Quotes einzuschließen, also habe ich dafür Präfix- und Postfix-Variablen erstellt:

```auto
{% for property in properties.entities %}

  {% set prefix1 = ' and k != "' %}
  {% set postfix1 = '"' %}
  
  {% set temp2 = "" %}
  {% for number1 in 1..100 %}
      {% set temp2 = prefix1 ~context.context.extensions.PropertiesExtension1[number1] ~postfix1 %}
      {{ temp2 }}
  {% endfor %}

  {% set propertyoptionsA = property.options|filter((v, k) => k != temp1 ~temp2) %}

    {% sw_include '@Storefront/storefront/component/listing/filter/filter-property-select.html.twig' with {
        elements: propertyoptionsA,
        sidebar: sidebar,
        name: 'properties',
        displayName: property.translated.name,
        displayType: property.displayType,
        pluginSelector: 'filter-property-select',
        propertyName: property.translated.name
    } %}
{% endfor %}

```

---

<div class="post-metadata">

**Author:** ![abdullah](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@abdullah](https://forum.shopware.com/u/abdullah)\
**Post date:** [28. April 2023 um 18:40 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/4 "2023-04-28T18:40:24Z")

</div>

Warum nicht einfach

property.options|filter((v, k) =\> k not in context.context.extensions.PropertiesExtension1)

---

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [29. April 2023 um 15:31 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/5 "2023-04-29T15:31:37Z")

</div>

Denn hier ist die Standard Shopware Struktur:

```auto
Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\AggregationResultCollection {#9773 ▼
  #elements: array:6 [▼
    "manufacturer" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\EntityResult {#10589 ▶}
    "price" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\StatsResult {#10595 ▶}
    "rating" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\MaxResult {#10596 ▶}
    "shipping-free" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\MaxResult {#9762 ▶}
    "active" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\MaxResult {#10598 ▶}
    "properties" => Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\Metric\EntityResult {#10592 ▼
      #entities: Shopware\Core\Content\Property\PropertyGroupCollection {#8932 ▼
        #elements: array:21 [▼
          0 => Shopware\Core\Content\Property\PropertyGroupEntity {#8928 ▼
            #name: "PropertyName"
            #displayType: "media"
            #sortingType: "alphanumeric"
            #description: "PropertyName"
            #position: 1
            #filterable: true
            #visibleOnProductDetailPage: true
            #options: Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionCollection {#8715 ▼
              #elements: array:14 [▼
                "b3ff2365c286422a90125fe84a8031f6" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#8883 ▶}
                "3f777000a2734deead391133cee3a6a9" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#12137 ▶}

```

Und das ist es, was ich mit Subscriber habe:

```auto
Shopware\Core\Framework\DataAbstractionLayer\Search\EntitySearchResult {#13213 ▼
  #entity: "property_group_option"
  #total: 297
  #entities: Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionCollection {#9420 ▼
    #elements: array:297 [▼
      "001695276a734b7c9f4b60171e1de25f" => Shopware\Core\Content\Property\Aggregate\PropertyGroupOption\PropertyGroupOptionEntity {#9416 ▼
        #groupId: "2e03e57ed43942f8ace73424f4b7428b"
        #name: "Propertyname1"

```

Hier der Subscriber Code:

```auto
$propertyGroupOptionsData = $this->propertyGroupOptionsRepository->search($criteria1, $context);
$event->getContext()->addExtension('PropertiesXExtension', $propertyGroupOptionsData);

```

Weiß jemand, wie man es passend macht?

---

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [2. Mai 2023 um 19:05 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/6 "2023-05-02T19:05:50Z")

</div>

Kann vielleicht jemand einen Tipp geben?

---

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [3. Mai 2023 um 11:56 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/7 "2023-05-03T11:56:04Z")

</div>

Weiß jemand, wie ich Eigenschaften mit Optionen in einer Extension bekommen kann? Ich habe jetzt nur Optionen

---

<div class="post-metadata">

**Author:** ![shopwarer1638](https://avatars.discourse-cdn.com/v4/letter/s/76d3ee/32.png) [@shopwarer1638](https://forum.shopware.com/u/shopwarer1638)\
**Post date:** [3. Mai 2023 um 22:07 UTC](https://forum.shopware.com/t/zugriff-auf-eine-variable-aus-einer-twig-loop-heraus/99490/8 "2023-05-03T22:07:46Z")

</div>

Oder sollte es mit $collection über Extension.php gesetzt werden?
