Drucken von Feldelementattributen mit Twig / Drupal 8


7

In Drupal 7 kann ich dies in einer benutzerdefinierten Feldvorlage tun, um das Alt-Tag eines Bildes zu drucken:

<?php print $item['#item']['alt']; ?>

Und obwohl "item" in Twig / drupal 8-Feldern eine Variable zu sein scheint, kann ich anscheinend nicht dasselbe tun. Ich habe diese ausprobiert:

{{ item.alt }}
{{ item.item.alt }}

Diese funktionieren nicht, aber ich bekomme auch keine Fehler. Ein Blick auf die API gibt mir nicht viel Einblick. Ich habe diesen Kern gesehen, aber auch hier wurde kein Alt-Tag separat gerendert. Mein Bild rendert das Alt-Tag, wie ich es im Code sehen kann.


1
Etwas verwandt: drupal.org/node/2042773
Berdir

Antworten:


10

Die Syntax zum Drucken des Alt-Tags lautet in diesem Fall wie folgt:

{{ item['#item'].alt }}

Twig in Drupal 8 behandelt Hash-Schlüssel nicht wie #itemin Render-Arrays sauber. Ein Teil des Problems ist, dass #dies einen Kommentar in Twig bedeutet, also {{ item.#item.alt }}nicht funktionieren würde.

Es besteht die Möglichkeit, dies mit einer Twig-Erweiterung zu umgehen, um einen Drilldown in Hash-Attribute mit der Syntax zu ermöglichen, {{ item.item.alt }}aber ich bin mir nicht sicher, ob jemand daran arbeitet. Ich sollte erwähnen, dass Twig-Erweiterungen auch in Contrib hinzugefügt werden können.


Danke, das funktioniert super. Ich konnte diesbezüglich keine Dokumentation finden. Gibt es einen Hinweis, auf den Sie mich verweisen können?
Danny Englander

2
Solche Dinge sollten wahrscheinlich unter drupal.org/theme-guide/8 hinzugefügt werden, wenn sie spezifisch für Twig + Drupal sind. Ich kann sehen, dass dies möglicherweise zu drupal.org/node/1918824 passt , vielleicht unter Variablen?
Cottser


1
Ich habe dieses Beispiel zu drupal.org/node/1918824 hinzugefügt , wie von @Cottser vorgeschlagen, und einen Kommentar hinzugefügt, der auf das von ihm eingereichte Kernproblem verweist.
Ursula

Auf Drupal 8 {{ item['#item'].alt }}funktioniert das bei mir nicht. Stattdessen ist eine andere Lösung von @Hugo in Ordnung {{ item.content['#item'].alt }}.
Sébastien Gicquel

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.