Symfony 2 + Twig globale Variablen

8

Wie kann man eine globale Zweigvariable erhalten, um die Änderung beizubehalten, nachdem sie mit includes geändert wurde? Meine gewünschte Ausgabe ist "Set @ Tiefer", obwohl ich "Originaleinstellung" bekomme.

app / config / config.yml

%Vor%

root.html.twig

%Vor%

levelone.html.twig

%Vor%

deeper.html.twig

%Vor%     
ojreadmore 13.02.2012, 16:15
quelle

4 Antworten

6

Interessante Frage und ich weiß keine Antwort, aber keine Menge, die mit Blöcken und Sachen herumalbern, wird funktionieren. Ich habe in den generierten PHP-Cache-Vorlagendateien nachgesehen. Wenn Sie eine Variable zurückgeben, sieht das so aus:

%Vor%

Im Grunde sucht es zuerst nach testvar in Ihrem lokalen Kontext. Wenn nicht gefunden, dann sieht es im globalen Kontext aus.

Wenn Sie den Wert von test var setzen, erhalten Sie:

%Vor%

So wird nur der lokale Kontext aktualisiert. Der geänderte Wert verschwindet, wenn die enthaltene Vorlage zurückgegeben wird.

Also sieht es zumindest so aus, als wären globale Variablen wirklich nur lesbar.

Es könnte möglich sein, dies durch eine Erweiterung zu tun. Ich weiß nicht genug über die Interna.

    
Cerad 14.02.2012, 16:13
quelle
8

Von einem Container-bewussten Objekt:

%Vor%     
Thomas Decaux 25.10.2012 13:24
quelle
1

Haben Sie versucht, eine globale Variable über Twig zu definieren? Sie können dies in Ihrer Datei config.yml wie folgt tun:

%Vor%

% {{my_global_var}} in Ihrer Vorlage druckt myvalue

Weitere Informationen finden Sie in den offiziellen Dokumenten .

    
JeanValjean 26.04.2012 15:20
quelle
0

Es ist möglich, eine Twig-Erweiterung über Services zu definieren, überprüfen Sie hier

    
sepehr 07.02.2013 17:41
quelle

Tags und Links