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?


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 %}

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 %}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.