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?

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 .


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


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.