Memento Twig

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

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

Le chainage est possible avec la notation pointée

A la fin on aura

{{user.idUtilisateurGroupe.getIdUtilisateurGroupe }}
Retour en haut