if/else Abfrage von Wert in einem Dropdown in views-view-fields.html.twig
Eingetragen von druplash (11)
am 13.01.2022 - 12:45 Uhr in
am 13.01.2022 - 12:45 Uhr in
Einen schönen Tag zusammen!
In der views-view-fields.html.twig gebe ich Inhalte aus einer Liste (Dropdown) aus.
neu|Neu
alt|Alt
Abhängig davon möchte ich ein anderes Feld mit einer bestimmten Class wrappen. Dazu frage ich den Inhalt wie folgt ab:
{% if fields.field_zustand.content == "neu" %}
Class 1
{% else %}
Class 2
{% endif %}
Das funktioniert leider nicht, es wird immer die Class 2 ausgegeben, so als ob die values neu bzw. alt nicht erkannt werden.
Würde mir bitte jemand weiterhelfen?
Danke!
- Anmelden oder Registrieren um Kommentare zu schreiben
Hast Du schon mal geprüft,
am 14.01.2022 - 17:48 Uhr
Hast Du schon mal geprüft, was ausgegeben wird mit
{{fields.field_zustand.content}}? Ob das der reine Wert ist oder ein Div-Container drum rum steht?
Der Value müsste ja eigentlich eher "Neu" sein, als "neu".
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Danke für deine
am 18.01.2022 - 17:15 Uhr
Danke für deine Hilfestellung!
Ja die normale Ausgabe des Feldes erfolgt ohne Probleme und es wird Neu oder gebraucht ausgegeben. Jedoch funktioniert die Abfrage nicht, egal ob mit großem Anfangsbuchstaben oder nicht.
Kann oder muss ich hier wie z.B. in einem views-view-fields Twig Template ein |raw oder |striptags hinten anhängen? habe auch das versucht, funktioniert aber auch nicht.
Ich arbeite mit dem Modul
am 18.01.2022 - 18:29 Uhr
Ich arbeite mit dem Modul twig_field_value. Dann kann ich den Wert des Feldes so greifen: content.field_bildunterschrift|field_value . Das sollte auch in einer if-Bedingung so funktionieren.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Danke für den Tipp! Habe das
am 18.01.2022 - 19:28 Uhr
Danke für den Tipp! Habe das Modul installiert, jedoch wird mit dieser Zeile nichts ausgegeben.
{{ content.field_typ|field_value }}
<div class="card h-100">
<div class="card-body">
{% if content.field_typ|field_value == 'neu' %}
<div class="icon medium">
neu
</div>
{% else %}
<div class="icon medium">
nicht neu
</div>
{% endif %}
<div class="test">{{ content.field_typ|field_value }}</div>
<h5 class="card-title">{{ fields.title.content }}</h5>
</div>
</div>
Sollte da bei
am 18.01.2022 - 21:39 Uhr
Sollte da bei content.field_typ nicht statt typ der name des Feldes stehen? Oder heißt das typ?
Das Feld heißt in meinem Fall
am 18.01.2022 - 22:00 Uhr
Das Feld heißt in meinem Fall "typ" :-)
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja, das Feld heißt field_typ.
am 19.01.2022 - 08:32 Uhr
Ja, das Feld heißt field_typ. Ich hab es jetzt mehrmals versucht, aber leider ohne Erfolg. Hast du eine Ahnung woran es liegen könnte? Die Syntax scheint ja die richtige zu sein. Danke!
Wird in der Display
am 19.01.2022 - 10:42 Uhr
Wird in der Display Definition Deines content types das Feld "typ" ausgegeben? Andernfalls kommt es nicht in twig an.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ja, es wird normal ausgegeben
am 19.01.2022 - 11:01 Uhr
Ja, es wird normal ausgegeben mit: {{ fields.field_typ.content }}
Um den value abzufragen
am 19.01.2022 - 14:53 Uhr
Um den value abzufragen braucht man folgende Abfrage, dann funktionierts:
{% if row._entity.FELDNAME.value == 'WERT' %}