2010-11-29 8 views
35

In twig gibt es eine einfache Möglichkeit, die Gleichheit von 2 Variablen zu testen?Testen der Variablengleichheit in Zweig

{% if var1 = var2 %} ist nicht gültig, {% if var1 is sameas(var2) %} funktioniert nur, wenn beide ein Saiten ...

(von docs) „sameas prüft, ob eine Variable auf der gleichen Speicheradresse als eine andere Variable“, wie das ist nützlich.

So ist die einzige Art, wie ich zu vergleichen ganzen Zahlen gefunden habe, ist sie beide in Strings zu konvertieren:
{% if var1|lower is sameas(var2|lower) %}

Antwort

56

Soweit ich weiß Zweig ==, !=, <, >, >=, and <=. auch alle Standard-logischen Operatoren unterstützt, Ihre erste Beispiel {% if var1 = var2 %} überprüft nicht auf Gleichheit, es weist var2 zu var1 zu, Sie möchten es möglicherweise in den Vergleichsoperator == ändern.

Der Zweig sameas eingebauten Test, ist im Wesentlichen ein strenger Typ Vergleichsoperator ===, daher warum sie beide Zeichenfolgen in Ihrem Beispiel sein müssen.

+6

Cheers, ist die Dokumentation nicht offensichtlich machen. – Sam

+0

Yeah, auch im Jahr 2015 ist die Dokumentation schrecklich, sagen wir nicht die einfachsten Anwendungsfälle. Sehr seltsam – Sliq

1

Wenn Sie Wert vergleichen, die einen numerischen Wert haben, können Sie verwenden:

{% if (psong.songid) ==(song.id) %}