Ich habe eine Symfony2 Twig-Vorlage. Ich möchte den Wert eines Konfigurationsparameters in dieser Zweigvorlage (eine Versionsnummer) ausgeben. Deshalb habe ich den Konfigurationsparameter folgendermaßen definiert:
parameters:
app.version: 0.1.0
Ich kann diesen Konfigurationsparameter in Controllern verwenden, habe aber keine Ahnung, wie ich ihn in meine Twig-Vorlage bekomme.
symfony
configuration
twig
Timo Haberkern
quelle
quelle
Sie können ganz einfach in Ihrer Konfigurationsdatei Folgendes definieren:
Und greifen Sie in Ihrer Vorlage mit darauf zu
Andernfalls muss es eine Möglichkeit mit einer Twig-Erweiterung sein, Ihre Parameter verfügbar zu machen.
quelle
Sie können auch das integrierte Service Parameters-System nutzen, mit dem Sie den Wert isolieren oder wiederverwenden können:
Jetzt ist die Variable ga_tracking in allen Twig-Vorlagen verfügbar:
Der Parameter ist auch in den Controllern verfügbar:
Sie können einen Service auch als globale Twig-Variable (Symfony2.2 +) definieren:
http://symfony.com/doc/current/templating/global_variables.html
Wenn die globale Variable, die Sie festlegen möchten, komplizierter ist - beispielsweise ein Objekt -, können Sie die oben beschriebene Methode nicht verwenden. Stattdessen müssen Sie eine Zweigerweiterung erstellen und die globale Variable als einen der Einträge in der Methode getGlobals zurückgeben.
quelle
In neueren Versionen von Symfony2 (mit a
parameters.yml
anstelle vonparameters.ini
) können Sie Objekte oder Arrays anstelle von Schlüssel-Wert-Paaren speichern, sodass Sie Ihre Globals folgendermaßen verwalten können:config.yml (nur einmal bearbeitet):
parameters.yml:
Und dann können Sie in einer Zweigdatei
{{ project.version }}
oder verwenden{{ project.name }}
.Hinweis: Ich persönlich mag es nicht, Dinge hinzuzufügen
app
, nur weil dies die Variable von Symfony ist und ich nicht weiß, was dort in Zukunft gespeichert wird.quelle
Die oben angegebenen Antworten sind korrekt und funktionieren einwandfrei. Ich habe es anders gemacht.
config.yml
app.yml
app_twig.yml
Innerhalb des Controllers:
Innerhalb der Vorlagen- / Zweigdatei:
So verwenden Sie den Controller-Ausgang:
Regler:
Vorlagen- / Zweigdatei:
Ich erwähnte die verschiedenen zum besseren Verständnis.
quelle
Mit einer Twig-Erweiterung können Sie eine
parameter
Twig-Funktion erstellen :TwigExtension.php:
service.yml:
quelle
Sie können den
$this->getParameter('app.version')
Controller einfach an twig param binden und dann rendern.quelle
In confing.yml
In der Zweigansicht
quelle