web-dev-qa-db-fra.com

Impression des attributs d'élément de champ avec Twig / Drupal 8

Dans Drupal 7, je peux le faire dans un modèle de champ personnalisé pour imprimer la balise alt d'une image:

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

Et bien que "item" semble être une variable dans Twig/drupal 8 champs, je n'arrive pas à faire la même chose. J'ai essayé celles-ci:

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

Ceux-ci ne fonctionnent pas mais je n'ai pas non plus d'erreurs. En regardant l'API ne me donne pas beaucoup de perspicacité. J'ai vu ce Gist mais encore une fois, aucune balise alt rendue séparément. Mon image rend la balise alt comme je peux le voir dans le code.

7
Danny Englander

La syntaxe pour imprimer la balise alt dans ce cas est la suivante:

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

Twig in Drupal 8 ne gère pas les clés de hachage comme #item dans les tableaux de rendu proprement. Une partie du problème est que # signifie un commentaire dans Twig, donc {{ item.#item.alt }} ne fonctionnerait pas.

Il est possible de contourner ce problème avec une extension Twig pour permettre l'exploration des attributs de hachage avec la syntaxe {{ item.item.alt }} mais je ne sais pas si quelqu'un y travaille. Je dois mentionner que les extensions Twig peuvent également être ajoutées dans contrib.

10
Cottser

J'ai réussi à imprimer l'attribut alt de mon champ à l'aide de cette ligne {{ item.content['#item'].alt }}

3
Hugo