In trường hình ảnh với nhiều mục từ trường trong mẫu twig


9

Tôi có một mẫu twig cho một loại nội dung tùy chỉnh. Và nó có thể hiển thị hầu hết các trường tốt, nhưng tôi không thể in một trường hình ảnh với nhiều hình ảnh.

nút - mycontenttype.html.twig chứa

{{ 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 và content._field_myheaderimage xuất ra tiêu đề và hình ảnh tốt. Nhưng khi tôi sử dụng vòng lặp for

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

Tôi nhận được một lỗi

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

Khi tôi chỉ sử dụng

{{ content.field_gallery_images }}

Nó có thể xuất ra từng hình ảnh, nhưng điều này không cho phép tôi bọc từng mục trong div và thêm nội dung cho từng hình ảnh.


Câu trả lời từ @ 4k4 bên dưới có nhiều ưu điểm, nhưng với sự tỉnh táo của bạn, thay thế: content.field_gallery_images bằng node.field_gallery_images trong vòng lặp 'for' của bạn sẽ cung cấp cho bạn từng thực thể hình ảnh trong vòng lặp.
RominRonin

Câu trả lời:


9

In trường hình ảnh trong mẫu nút như bất kỳ trường nào khác:

{{ content.field_gallery_images }}

Và sau đó sử dụng một twig trường để lặp qua nhiều mục trường:

trường - trường-phòng trưng bày-hình ảnh.html.twig

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

1

Trên D8 tôi đã có thể tạo một vòng lặp foreach trên hình ảnh của mình theo cách để tạo ra một băng chuyền.

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

Giúp đỡ rất nhiều. Tại sao drupal khi bạn có thể tìm ra lỗ thỏ trong cành? : D
cwiggo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.