J'ai un modèle Symfony2 Twig. Je veux afficher la valeur d'un paramètre de configuration dans ce modèle de brindille (un numéro de version). Par conséquent, j'ai défini le paramètre de configuration comme ceci:
parameters:
app.version: 0.1.0
Je suis capable d'utiliser ce paramètre de configuration dans les contrôleurs mais je n'ai aucune idée de comment l'obtenir dans mon modèle Twig.
symfony
configuration
twig
Timo Haberkern
la source
la source
Vous pouvez facilement définir dans votre fichier de configuration:
Et accédez-y dans votre modèle avec
Sinon, cela doit être un moyen avec une extension Twig d'exposer vos paramètres.
la source
Vous pouvez également tirer parti du système de paramètres de service intégré, qui vous permet d'isoler ou de réutiliser la valeur:
Désormais, la variable ga_tracking est disponible dans tous les modèles Twig:
Le paramètre est également disponible à l'intérieur des contrôleurs:
Vous pouvez également définir un service en tant que variable globale Twig (Symfony2.2 +):
http://symfony.com/doc/current/templating/global_variables.html
Si la variable globale que vous souhaitez définir est plus compliquée - disons un objet - vous ne pourrez pas utiliser la méthode ci-dessus. Au lieu de cela, vous devrez créer une extension Twig et renvoyer la variable globale comme l'une des entrées de la méthode getGlobals.
la source
Sur les versions plus récentes de Symfony2 (en utilisant a
parameters.yml
au lieu deparameters.ini
), vous pouvez stocker des objets ou des tableaux au lieu de paires clé-valeur, vous pouvez donc gérer vos globaux de cette manière:config.yml (modifié une seule fois):
parameters.yml:
Et puis dans un fichier twig, vous pouvez utiliser
{{ project.version }}
ou{{ project.name }}
.Note: Personnellement, je n'aime pas ajouter des choses à
app
, juste parce que c'est la variable de Symfony et que je ne sais pas ce qui y sera stocké à l'avenir.la source
Les réponses ci-dessus sont correctes et fonctionnent correctement. Je l'ai utilisé d'une manière différente.
config.yml
app.yml
app_twig.yml
Contrôleur intérieur:
Modèle intérieur / fichier de brindille:
Pour utiliser la sortie du contrôleur:
Manette:
fichier modèle / brindille:
J'ai évoqué les différents pour mieux comprendre.
la source
Avec une extension Twig, vous pouvez créer une
parameter
fonction Twig:TwigExtension.php:
service.yml:
la source
Vous pouvez simplement lier le
$this->getParameter('app.version')
contrôleur au paramètre twig, puis le rendre.la source
Dans confing.yml
Dans la vue Twig
la source