Stampa campo immagine con più voci dal campo nel modello di ramoscello


9

Ho un modello di ramoscello per un tipo di contenuto personalizzato. Ed è in grado di eseguire il rendering della maggior parte dei campi, ma non riesco a stampare un campo immagine con più immagini.

nodo - mycontenttype.html.twig contiene

{{ 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 e content._field_myheaderimage restituisce il titolo e l'immagine bene. Ma quando uso il ciclo for

    {% for galleryimage in content.field_gallery_images %}
           <div class="gallery-image-item"> {{ galleryimage }} </div>
    {% endfor %}

Ricevo un errore

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).

Quando uso solo

{{ content.field_gallery_images }}

È in grado di produrre ogni immagine, ma ciò non mi consente di avvolgere ogni elemento in div e aggiungere contenuti a ciascuno.


La risposta da @ 4k4 sotto presenta molti vantaggi, ma per la tua sanità mentale, sostituendo: content.field_gallery_images con node.field_gallery_images nel tuo ramoscello "for" ti avrebbe dato ciascuna entità immagine nel loop.
Romin Ronon,

Risposte:


9

Stampa il campo immagine nel modello nodo come qualsiasi altro campo:

{{ content.field_gallery_images }}

E quindi usa un ramoscello di campo per scorrere più elementi di campo:

campo - campo-galleria-images.html.twig

<div class="row expanded">
  {% for item in items %}
    <div class="gallery-image-item">{{ item.content }}</div>
  {% endfor %}
</div>

1

Su D8 sono stato in grado di creare un ciclo foreach sulle mie immagini in modo da generare una giostra.

<!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    {% for i in 0..content.field_accueil_image_slide|length %}
     {%if content.field_accueil_image_slide[i]['#item'].entity.uri.value != "" and content.field_accueil_image_slide[i]['#item'].entity.uri.value is not empty %}
        <div class="item {{ (i == 0) ? 'active' : '' }}" style="">{{ content.field_accueil_image_slide[i]}}</div>
     {%endif%}
    {%endfor%}
  </div>

Un grande aiuto grazie. Perché drupal quando riesci a capire la tana del coniglio in un ramoscello? : D
cwiggo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.