it-swarm.com.de

Wie überprüfe ich einen booleschen Wert in twig Vorlagen?

Wir haben einen field_boolean (boolean field) auf einem ECK Bundle für den Artikelinhaltstyp. Während der Recherche stießen wir auf die Frage " Wie teste ich ein boolesches Feld in einer twig Vorlage? ", aber es löst mein Problem nicht.

Was ist der geeignete Weg, um den booleschen Wert zu überprüfen?

Wir haben es versucht, aber sie funktionieren nicht:

{% if entity.field_boolean == True %}
{% if '1' in entity.field_boolean[0] %}

Diese scheinen zu funktionieren, sind sich aber nicht sicher, ob es sich um einen korrekten Ansatz handelt.

{% if entity.field_boolean[#items].value == '1' %}
{% if entity.field_boolean[#items].value %}
7
usernameabc

Zeit für eine weitere Promotion meines Blogposts vor einiger Zeit :)

https://www.md-systems.ch/de/blog/techblog/2017/02/20/twig-and-entity-field-api-or-how-to-take-control-of- nodehtmltwig

Der relevante Teil:

Zeigen Sie ein Feld nur an, wenn ein Kontrollkästchen aktiviert ist, optional mit benutzerdefiniertem Wrapping-HTML.

{% if node.field_checkbox.value %}
   <div class="only added when there are values">
  {{ content.field_name }}
  </div>
{% endif %}

Du brauchst nicht == '1' oder dasselbe oder ähnliches, da es direkt einen booleschen Wert auswertet. Ich würde auch nicht empfehlen, typsichere Prüfungen mit Inhaltsentitäten zu verwenden, da diese nicht typsicher sind. Werte werden in der Datenbank gespeichert und alles, was von dort herauskommt, ist eine Zeichenfolge, aber manchmal sind Werte möglicherweise nicht vorhanden. Das boolesche Feld ist eigentlich das perfekte Beispiel dafür, es ist ein String, auch bekannt als eine schöne Mischung aus 3 verschiedenen Datentypen.

15
Berdir

Checkbox Felder Wert einchecken Twig Vorlagen für drupal 8:

{% if node.field_checkbox['#items'].value == '1' %}
  <div class="only added when there are values">
    {{ content.field_name }}
  </div>
{% endif %}

Das funktioniert gut für mich.

4
Maxim Kashuba

Für mich hat ein Test nicht konsequent funktioniert. Die folgende Bedingung scheint jedoch alle Anwendungsfälle abgedeckt zu haben.

{% if content.field_boolean is not empty and node.field_boolean.value == '1' %}
1
makbeta

Wenn Sie das Boolesche Feld im Inhaltstyp erstellen, hat dies bei mir funktioniert

{% if node.field_boolean.value == 1%} {{page.contact_form}} {% endif%}

und auch wenn Sie ein boolesches Feld in einem Absatz haben, dann hat dies für mich funktioniert

{% if content.field_boolean ['# items']. value == 1%} {{content.field_description}} {% endif%}

0
santhosh