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 }}