Wie teste ich ein boolesches Feld in einer Zweigvorlage?

8

field_boolean ist ein boolesches Feld.

{% if content.field_boolean == true %}oder {% if content.field_boolean == 1 %}oder {% if content.field_boolean == 'true' %}oder {% if content.field_boolean == '1' %}nicht funktionieren.

Wie teste ich, ob das Kontrollkästchen aktiviert ist?

Pim
quelle

Antworten:

14

Sie möchten den Rohwert und nicht das Render-Array anzeigen.

Beispiel:

{% if node.field_foo is not empty %}

Dies prüft, ob das Feld existiert. Das Render-Array ist über das Rendern von Werten hinaus nicht nützlich.

Schau nicht hin content- das ist einfach das Render-Array. Sehen Sie sich die Felder in Ihrem Entitätsobjekt an (Knoten, Absatz usw.). Möglicherweise möchten Sie Twig XDebug installieren, um Ihre Vorlagen zu trennen oder Variablen in zu überprüfen mytheme.theme.

Sie sollten in der Lage sein, nach {% if node.field_foo.value ... %}Gleichheitsprüfungen zu suchen .

Kevin
quelle
Wie überprüfe ich den Rohwert? 'content.field_boolean.value' scheint nicht zu funktionieren. Siehe auch meine andere Frage zum Rendern von Rohwerten ( drupal.stackexchange.com/questions/228388/… )
Pim
3
Schau nicht auf "Inhalt". Sehen Sie sich die Felder in Ihrem Entitätsobjekt an (Knoten, Absatz usw.). Möglicherweise möchten Sie Twig xdebug installieren, um Ihre Vorlagen zu unterbrechen oder Variablen in mytheme.theme zu überprüfen.
Kevin
Vielen Dank! Das hat die Frage gelöst. Wenn Sie dieselbe Antwort auf die andere Frage veröffentlichen möchten, kann dies für andere Benutzer hilfreich sein. Sonst beantworte ich es selbst.
Pim
Nur eine andere Frage: Ist es effizienter, neben der Zweigvorlage direkt node.field oderagraph.field anstelle von content.field zu verwenden?
Pim
1
Antwort aktualisiert.
Kevin
1

Hier ist, wie ich das gelöst habe, es erfordert das twig_field_value- Projekt.

Setzen Sie für das boolesche Feld die Ein- und Ausschaltwerte auf 1 bzw. 0.

Im Zweig:

{% if content.field_foo|field_raw('value')|number_format(0,'.',',') is same as('0') %} <span>the box is NOT checked</span> {% endif %}

Bdanin
quelle
0

Das funktioniert bei mir.
{% if '1' in content.field_name.0 %} {{ "anything" }} {% endif %}

Quelle

Aditya Joshi
quelle