Symfony 2 + Zweig Globale Variablen
Wie kann man einen Zweig Globale variable pflegen änderung nach der änderung mit einbezieht? Meine gewünschte Ausgabe "set @ deeper" aber ich bekomme "ursprüngliche Einstellung".
app/config/config.yml
twig:
globals:
testvar: "original setting"
root.html-Code.Zweig
{% include "MyBundle::levelone.html.twig" %}
{{ testvar }}
levelone.html-Code.Zweig
{% set testvar = "set @ levelone" %}
{% include "MyBundle::deeper.html.twig" %}
tiefer.html-Code.Zweig
{% set testvar = "set @ deeper" %}
- Haben Sie versucht, innerhalb der Blöcke ? Ich meine, wickeln Sie alle Ihre
{% set testvar %}
und{{ testvar }}
mit{%block global_test %}
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Interessante Frage und ich weiß nicht, eine Antwort, aber keine Menge herumalbern mit Blöcke und Sachen arbeiten. Ich sah in der erzeugten php-cache template-Dateien. Wenn man das echo einer Variablen sieht es so aus:
Also im Grunde sucht es zuerst für testvar in Ihrem lokalen Kontext. Wenn nicht gefunden, dann sieht es im globalen Kontext.
Wenn Sie den Wert von test var erhalten Sie:
Also nur der lokale Kontext wird aktualisiert. Der geänderte Wert geht Weg, wenn die mitgelieferte Vorlage gibt.
Also standardmäßig zumindest sieht es wie Globale Variablen sind wirklich nur Lesen.
Könnte es möglich sein, dies zu tun durch eine Erweiterung. Ich weiß nicht genug über die Interna.
Aus einem container bewusst, Objekt :
Haben Sie versucht, zu definieren, eine Globale variable über Zweig? Du kannst es in deiner config.yml-Datei wie folgt:
So
{{my_global_var}}
in Ihrer Vorlage druckenmyvalue
Für weitere Informationen Lesen Sie die offiziellen docs.
Ist es möglich durch die Festlegung einer Twig Erweiterung über Dienstleistungen, überprüfen hier