J'ai un modèle de brindille pour un type de contenu personnalisé. Et il est capable de rendre très bien la plupart des champs, mais je ne peux pas imprimer un champ d'image avec plusieurs images.
nœud - mycontenttype.html.twig contient
{{ content.field_mytitle }}
{{ content.field_myheaderimage }}
<div class="row expanded">
{% for galleryimage in content.field_gallery_images %}
<div class="gallery-image-item"> {{ galleryimage }} </div>
{% endfor %}
</div>
content.field_mytitle et content._field_myheaderimage sort très bien le titre et l'image. Mais quand j'utilise la boucle for
{% for galleryimage in content.field_gallery_images %}
<div class="gallery-image-item"> {{ galleryimage }} </div>
{% endfor %}
Je reçois une erreur
Exception: Object of type Drupal\node\Entity\Node cannot be printed. in Drupal\Core\Template\TwigExtension->escapeFilter() (line 443 of core/lib/Drupal/Core/Template/TwigExtension.php).
Quand j'utilise
{{ content.field_gallery_images }}
Il est capable de sortir chaque image, mais cela ne me permet pas d'envelopper chaque élément dans des divs et d'ajouter du contenu à chacune.
Réponses:
Imprimez le champ d'image dans le modèle de nœud comme n'importe quel autre champ:
Et puis utilisez une brindille de champ pour parcourir plusieurs éléments de champ:
champ - field-gallery-images.html.twig
la source
Le D8, j'ai pu faire une boucle foreach sur mes images de manière à générer un carrousel.
la source