Cetak bidang gambar dengan banyak entri dari bidang dalam templat ranting

9

Saya memiliki templat ranting untuk jenis konten khusus. Dan itu mampu membuat sebagian besar bidang dengan baik, tapi saya tidak dapat mencetak bidang gambar dengan banyak gambar.

node - mycontenttype.html.twig berisi

{{ 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 dan content._field_myheaderimage menampilkan judul dan gambar dengan baik. Tetapi ketika saya menggunakan for loop

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

Saya menerima kesalahan

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

Saat saya gunakan saja

{{ content.field_gallery_images }}

Ini dapat menampilkan setiap gambar, tetapi ini tidak memungkinkan saya untuk membungkus setiap item dalam divs dan menambahkan konten ke masing-masing.

Mat
sumber
Jawaban dari @ 4k4 di bawah ini memiliki banyak keuntungan, tetapi untuk kewarasan Anda, mengganti: content.field_gallery_images dengan node.field_gallery_images dalam ranting 'for' loop Anda akan memberi Anda setiap entitas gambar dalam loop.
RominRonin

Jawaban:

9

Cetak bidang gambar dalam templat simpul seperti bidang lainnya:

{{ content.field_gallery_images }}

Dan kemudian gunakan ranting bidang untuk mengulang beberapa item bidang:

bidang - bidang-galeri-gambar.html.twig

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

Pada D8 saya bisa membuat loop foreach pada gambar saya dengan cara menghasilkan korsel.

<!-- 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>
Pauleau
sumber
Terima kasih banyak, bantuan. Mengapa melakukan drupal ketika Anda bisa mengetahui lubang kelinci di ranting? : D
cwiggo