Ich habe eine Objektvariable, die nur Daten enthält, wenn von innerhalb eine for x in y
Schleife zugegriffen wird.Zweig variabler Bereich - global nur innerhalb der Schleife verfügbar
Dies geschieht innerhalb einer Feldvorlage für ein Drupal 8-Thema, wobei das Ziel darin besteht, auf den Wert eines gleichgeordneten Felds zuzugreifen.
Vereinfachte Schnipsel:
{% for x in [1] %}
Inside loop = {{ _parent.element['#object'].get('field_section_theme').value }}
{% endfor %}
Outside loop = {{ _parent.element['#object'].get('field_section_theme').value }}
Ausgang:
Inside loop = normal
Outside loop =
Ich verstehe, würde, wenn eine Variable, die war außerhalb nicht verfügbar in einer Schleife gesetzt war, aber das ist nicht verwandt, genommen aus die _context
der Vorlage selbst.
Meine Problemumgehung der Umhüllung eines Verweises auf die Variable in einer einfachen einmaligen for
Schleife hat mein unmittelbares Problem gelöst, aber ich würde gerne verstehen, was hier passiert!
(ich würde auch eine sauberere Art und Weise als die for x in [1]
Ansatz, aber normalerweise bevorzugen, wenn Sie nur etwas ausgeführt werden soll, wenn Sie es nur aufschreiben!)
Hat nicht machen Sinn. Sie sollten etwas zusätzlichen Code zur Verfügung stellen, um das wirkliche Problem hier herauszufinden – DarkBee
Es macht überhaupt keinen Sinn, daher die Frage :) Es ist eine Feldvorlage für ein Drupal 8 Thema - dieser Code greift auf den Wert in einem Geschwisterfeld ('field_section_theme'). Es gibt keinen * code * Kontext, da diese Zeilen isoliert die Eigenheiten reproduzieren.(Ich bin gleich zu Beginn der Erstellung der Vorlage darauf gestoßen.) – Jimaginary
Nicht alle Variablen, die für eine Seite verfügbar sind, sind in jeder Vorlage verfügbar. Es hängt davon ab, welche Vorlage Sie verwenden und sollte in Kommentaren am oberen Rand der Vorlage angezeigt werden. – garek007