พิมพ์ฟิลด์รูปภาพที่มีหลายรายการจากฟิลด์ในเทมเพลตกิ่งไม้


9

ฉันมีแม่แบบกิ่งไม้สำหรับประเภทเนื้อหาที่กำหนดเอง และมันสามารถแสดงฟิลด์ส่วนใหญ่ได้ดี แต่ฉันไม่สามารถพิมพ์ฟิลด์รูปภาพที่มีหลายภาพได้

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

มันสามารถส่งออกภาพแต่ละภาพ แต่ไม่อนุญาตให้ฉันห่อแต่ละรายการใน divs และเพิ่มเนื้อหาลงในแต่ละภาพ


คำตอบจาก @ 4k4 ด้านล่างมีข้อดีหลายประการ แต่สำหรับสติปัญญาของคุณการแทนที่: content.field_gallery_images ด้วย node.field_gallery_images ใน twig 'for' ลูปของคุณจะให้เอนทิตีอิมเมจในลูป
RominRonin

คำตอบ:


9

พิมพ์ฟิลด์อิมเมจในเทมเพลตโหนดเช่นฟิลด์อื่น:

{{ content.field_gallery_images }}

จากนั้นใช้กิ่งสาขาเพื่อวนซ้ำหลายรายการในฟิลด์:

สนาม - สนามแกลเลอรี่ images.html.twig

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

1

ใน 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>

ขอบคุณมากที่ช่วย ทำไมต้องทำ drupal เมื่อคุณสามารถหารูกระต่ายในกิ่งไม้ได้? : D
cwiggo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.