87 votes

Si a == true OU b == true déclaration

Je ne trouve pas de moyen d'avoir TWIG interpréter la déclaration conditionnelle suivante :

{% if a == true or b == true %}
faire quelque chose
{% endif %}

Est-ce que j'ai raté quelque chose ou ce n'est pas possible ?

0 votes

Et opérateur : `{% if a et b %} ... {% endif %}`

167voto

Andreu Heineken Points 963

Vérifiez ce Référence Twig.

Vous pouvez le faire simplement de cette manière :

{% if (a or b) %}
    ...
{% endif %}

37 votes

Le "ou" doit également être en minuscule - il semble que twig est sensible à la casse.

3 votes

Pour annuler cela pour plusieurs : {% if not (a or b or c) %} ... {% endif %}

0 votes

Pas besoin de parenthèses.

36voto

Tim Points 2541

Les expressions de comparaison doivent chacune être entre parenthèses :

{% if (a == 'foo') or (b == 'bar') %}
    ...
{% endif %}

Sinon, si vous inspectez une seule variable et un certain nombre de valeurs possibles :

{% if a in ['foo', 'bar', 'qux'] %}
    ...
{% endif %}

0 votes

Pas nécessairement, selon la documentation officielle de Twig twig.symfony.com/doc/2.x/tags/if.html

1 votes

Correct. J'ai eu des problèmes avec Drupal 8 et j'ai dû mettre des expressions entre crochets pour les résoudre.

0 votes

@Tim y a-t-il un moyen d'abréger ce qui suit? {% if (kind == '01') or (kind == '02') or (kind == '03') or (kind == '04') or (kind == '05') %}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X