Petit article pour consigner les techniques de Twig qu’on a trop tendance à oublier car peu utilisée, il est ici utilisé dans un contexte Symfony
Chercher l’url d’une route
{{ url('home') }} << ou un autre nom de route, ici on a le nom de domaine
Contenu
Boucle for dans twig
{% for user in users %} <li>{{ user.username|e }}</li> {% endfor %}
Comment dumper une variable
Vraiment très fondamental, le dump permet de voir ce que contient une variable, et c’est un raccourci très efficace dans la connaissance d’une librairie
{{ dump(app.request) }}
Ainsi l’exemple ci-dessus peut nous donner plein d’informations sur l’objet request et ainsi nous permettre dde récuérer des informations comme path_info
ou des variable de paramétrage dans les fichier de configuration de Symfony.
#exemple de dump public 'server' => object(Symfony\Component\HttpFoundation\ServerBag)[16] protected 'parameters' => array (size=41) 'REDIRECT_STATUS' => string '200' (length=3) 'HTTP_HOST' => string 'terrav2' (length=11) 'HTTP_CONNECTION' => string 'keep-alive' (length=10) 'HTTP_CACHE_CONTROL' => string 'max-age=0' (length=9) 'HTTP_UPGRADE_INSECURE_REQUESTS' => string '1' (length=1) 'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36' (length=121) 'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' (length=124) 'HTTP_REFERER' => string 'http://terrav2/matrice/export' (length=33) 'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate' (length=13) 'HTTP_ACCEPT_LANGUAGE' => string 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7' (length=35) 'HTTP_COOKIE' => string 'PH.. # pour getter le hTTP_HOST par exemple : {{ dump(app.request.server.get('HTTP_HOST')) }}
Comment accéder à un rôle d’un user
{{ app.user.roles[0] }}
Créer un lien hypertexte
{{ url('nomDeLaRoute',{ 'param':'value'}) }}
Accès aux variables de configuration de Symfony depuis Twig : Substitution de variable
Dans le fichier services.yaml
:
parameters: pdf_folder: '%kernel.root_dir%/../public/medias/pdf'
Dans le fichier twig.yaml
twig: globals: pdf_path: '%pdf_folder%'
Dans le fichier template twig :
{{pdf_path}}
Accéder à une propriété d’une table liée
Il hy a la table Users qui contient le champ IdGroupe
,puis la table UtilisateurGroupe
qui contient l’IdGroupe
(jointure donc) et le libellé du groupe auquel on veut accéder
A la fin on aura
{{user.idUtilisateurGroupe.getIdUtilisateurGroupe }}