In meiner symfony2-Anwendung habe ich eine getPorfolioUser-Methode, die eine bestimmte Benutzervariable zurückgibt.
Ich freue mich darauf,
anrufen zu können{% if portfolio_user%}
im Zweig. Ich habe nicht verstanden, wie ich das als globale Variable einstellen könnte, da ich in der Dokumentation unter der Impression nur fixe Elemente oder Dienste setzen kann, aber keine Methoden der Dienste.
Muss ich dafür eine Erweiterung oder einen Helfer schreiben? Was ist der einfachste Weg, dies zu tun?
Danke!
Ein Ansatz besteht darin, einen CONTROLLER-Ereignis-Listener zu verwenden. Ich benutze gerne CONTROLLER anstelle von REQUEST, weil es sicherstellt, dass alle regulären Request-Listener ihr Ding schon gemacht haben.
%Vor%Hörer sind hier dokumentiert: Ссылка
Ein anderer Ansatz wäre, den Zweig global zu vermeiden und nur einen Zweig-Erweiterungsruf zu machen. Ссылка
So oder so funktioniert es.
Wenn du hier schaust: Ссылка
Sie können dies lesen:
Die App-Variable ist überall verfügbar und bietet Zugriff auf viele häufig benötigte Objekte und Werte. Es ist eine Instanz von GlobalVariables.
GlobalVariables
ist Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables
Ich tue es nie, aber ich denke, ein Weg besteht darin, diese Klasse zu überbieten, um Ihre speziellen Bedürfnisse zu berücksichtigen.
Ich hatte auch Schwierigkeiten damit und habe es schließlich gelöst, indem ich Folgendes getan habe:
Richten Sie Ihr Bundle ein (z. B. MyVendor / MyBundle)
%Vor%
Erstellen Sie in dieser Klassendatei die Funktion
%Vor%
Erstellen Sie in app / config / services.yml einen neuen Dienst wie folgt:
%Vor%
In app / config / config.yml unter twig Konfigurationsabschnitt
%Vor%
Dann können Sie in Ihren Zweigvorlagen die Variable wie folgt referenzieren:
%Vor%
DISCLAIMER
so habe ich es zur Arbeit gebracht ....
hoffe das hilft.
Tags und Links php service symfony global-variables twig