Роздрукувати поле зображення з декількома записами з поля у гілочному шаблоні


9

У мене є шаблон гілочки для користувацького типу вмісту. І більшість полів здатні просто відтворити, але я не можу надрукувати поле зображення з кількома зображеннями.

вузол - 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 }}

Він може виводити кожне зображення, але це не дозволяє мені загортати кожен елемент у діви та додавати вміст до кожного.


Відповідь від @ 4k4 нижче має багато переваг, але для вашого розуму, заміна: content.field_gallery_images на node.field_gallery_images у вашій гілочці циклу "for" дала б вам кожну сутність зображення в циклі.
RominRonin

Відповіді:


9

Друкуйте поле зображення в шаблоні вузла, як і будь-яке інше поле:

{{ content.field_gallery_images }}

А потім використовуйте гілочку поля, щоб провести цикл через кілька елементів поля:

field - поле-галерея-images.html.twig

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

1

У D8 мені вдалося зробити цикл передбачення на моїх зображеннях, щоб генерувати карусель.

<!-- 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>

Величезна допомога дякую. Навіщо робити друпаль, коли ви можете розібратися з кролячим отвором у гілочці? : D
cwiggo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.