ЯКЩО a == true АБ b == true твердження


78

Я не можу знайти спосіб, щоб TWIG інтерпретував таке умовне твердження:

{% if a == true or b == true %}
do stuff
{% endif %}

Мені чогось не вистачає або це неможливо?


І оператор: `{% if a і b%} ... {% endif%}
Мухаммад Шахзад

Відповіді:


154

перевірте це посилання Twig .

Ви можете зробити це так просто:

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

32
"Або" також має бути в нижньому регістрі - здається, гілочка чутлива до регістру.
Шейн

3
Щоб заперечити це для кратних: {% if not (a or b or c)%} ... {% endif%}
JimB814

Не потрібно дужок.
Fabien Snauwaert

33

Вирази порівняння мають бути в окремих дужках:

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

Альтернатива, якщо ви перевіряєте одну змінну та ряд можливих значень:

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

не обов'язково, згідно з офіційною документацією Twig twig.symfony.com/doc/2.x/tags/if.html
Лучано

1
Правильно . У мене були проблеми в Drupal 8, і мені довелося обгортати вирази в дужки.
Тім

@Tim чи є спосіб скоротити наступне? {% if (kind == '01') or (kind == '02') or (kind == '03') or (kind == '04') or (kind == '05') %}
neoDev

2
Використовуйте inзаяву: {% if kind in ['01', '02'] %} .... Гілочка .
Тім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.