WENN a == wahr ODER b == wahr Aussage

75

Ich kann TWIG die folgende bedingte Aussage nicht interpretieren lassen:

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

Vermisse ich etwas oder ist es nicht möglich?

MarkL
quelle
Und Operator: `{% if a und b%} ... {% endif%}
Muhammad Shahzad

Antworten:

150

Überprüfen Sie diese Zweigreferenz .

So einfach geht das:

{% if (a or b) %}
    ...
{% endif %}
Andreu Ramos
quelle
32
Das "oder" muss auch in Kleinbuchstaben geschrieben werden - bei Zweigen wird zwischen Groß- und Kleinschreibung unterschieden.
Shane
3
Um dies für Vielfache zu negieren: {% wenn nicht (a oder b oder c)%} ... {% endif%}
JimB814
Klammern sind nicht erforderlich.
Fabien Snauwaert
28

Vergleichsausdrücke sollten jeweils in eigenen Klammern stehen:

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

Alternative, wenn Sie eine einzelne Variable und eine Reihe möglicher Werte untersuchen:

{% if a in ['foo', 'bar', 'qux'] %}
    ...
{% endif %}
Tim
quelle
nicht unbedingt, laut Twigs offizieller Dokumentation twig.symfony.com/doc/2.x/tags/if.html
Luciano
1
Richtig . Ich hatte Probleme in Drupal 8 und musste die Ausdrücke in Klammern setzen, um das Problem zu lösen.
Tim
@Tim gibt es eine Möglichkeit, Folgendes abzukürzen? {% if (kind == '01') or (kind == '02') or (kind == '03') or (kind == '04') or (kind == '05') %}
NeoDev
2
Verwenden Sie eine inAnweisung : {% if kind in ['01', '02'] %} .... Zweiggeige .
Tim