カスタムコンテンツタイプのtwigテンプレートがあります。ほとんどのフィールドを問題なくレンダリングできますが、複数の画像を含む画像フィールドを印刷できません。
node--mycontenttype.html.twigには
{{ 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とcontent._field_myheaderimageは、タイトルと画像を適切に出力します。しかし、forループを使用すると
{% for galleryimage in content.field_gallery_images %}
<div class="gallery-image-item"> {{ galleryimage }} </div>
{% endfor %}
エラーが表示されます
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).
使うだけで
{{ content.field_gallery_images }}
各画像を出力することはできますが、これにより、各項目をdivでラップして、それぞれにコンテンツを追加することはできません。
他のフィールドと同様に、ノードテンプレートの画像フィールドを印刷します。
{{ content.field_gallery_images }}
次に、フィールドtwigを使用して、複数のフィールドアイテムをループします。
field--field-gallery-images.html.twig
<div class="row expanded">
{% for item in items %}
<div class="gallery-image-item">{{ item.content }}</div>
{% endfor %}
</div>
D8では、カルーセルを生成する方法で画像にforeachループを作成できました。
<!-- 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>