Tester si un bloc dans un template Twig existe

Publié le 22/05/2021 • Actualisé le 22/05/2021


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment tester si un bloc dans un template Twig existe. C'est parfois utile de savoir si l'un des parents du template a déjà défini un bloc ou pas. On peut faire comme si nous testions une variable. Ce n'était pas possible avant la version 2 de Twig. Bien sûr, l'exemple serait plus pertinent dans un template étendant un autre, mais ce n'est pas le cas ici.


{% trans_default_domain 'snippet' %}

{% block defined_in_demo %}{% endblock %}

{% if block('defined_in_demo') is defined %}
    <h3>{{ 'is_defined_148'|trans({'%block%':'defined_in_demo'}) }} ✅</h3>
{% else %}
    <h3>{{ 'is_not_defined_148'|trans({'%block%': 'defined_in_demo'}) }} ❌</h3>
{% endif %}

{% if block('foo_bar') is defined %}
    <h3>{{ 'is_defined_148'|trans({'%block%': 'foo_bar'}) }} ✅</h3>
{% else %}
    <h3>{{ 'is_not_defined_148'|trans({'%block%': 'foo_bar'}) }} ❌</h3>
{% endif %}
Démo HTML du snippet

Le bloc "defined_in_demo" est défini ! ✅

The bloc "foo_bar" n'est PAS défini ! ❌


 Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

  Travaillez avec moi !


A vous de jouer !

Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )

Merci et à très bientôt sur Strangebuzz ! 😉

COil