web-dev-qa-db-fra.com

Comment tester un champ booléen dans un modèle twig?

field_boolean est un champ booléen.

{% if content.field_boolean == true %} ou {% if content.field_boolean == 1 %} ou {% if content.field_boolean == 'true' %} ou {% if content.field_boolean == '1' %} ne fonctionne pas.

Comment tester si la case est cochée?

8
Pim

Vous voulez regarder la valeur brute, pas le tableau de rendu.

Exemple:

{% if node.field_foo is not empty %}

Ceci vérifie si le champ existe. Le tableau de rendu ne sera pas utile au-delà des valeurs de rendu.

Ne regardez pas content - c'est simplement le tableau de rendu. Regardez les champs de votre objet entité (nœud, paragraphe, etc.). Vous voudrez peut-être installer Twig XDebug pour briser vos modèles ou inspecter les variables dans mytheme.theme.

Vous devriez pouvoir regarder {% if node.field_foo.value ... %} pour la vérification de l'égalité.

13
Kevin

Voici comment j'ai résolu cela, cela nécessite le projet twig_field_value .

Pour le champ booléen, définissez les valeurs d'activation et de désactivation sur 1 et 0 respectivement.

En brindille:

{% if content.field_foo|field_raw('value')|number_format(0,'.',',') is same as('0') %} <span>the box is NOT checked</span> {% endif %}

1
bdanin

Cela fonctionne pour moi.
{% if '1' in content.field_name.0 %} {{ "anything" }} {% endif %}

Source

0
Aditya Joshi