Dal şablonundaki alandan birden fazla giriş içeren görüntü alanını yazdırın


9

Özel içerik türü için bir dal şablonum var. Ve çoğu alanı iyi işleyebiliyor, ancak birden fazla görüntüyle bir görüntü alanı yazdıramıyorum.

düğüm - mycontenttype.html.twig içerir

{{ 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 ve content._field_myheaderimage, başlığı ve resmi gayet iyi çıktılar. Ama for döngüsünü kullandığımda

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

Bir hata alıyorum

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

Sadece kullandığımda

{{ content.field_gallery_images }}

Her bir görüntüyü çıktılayabilir, ancak bu, her öğeyi div'lere sarmam ve her birine içerik eklememe izin vermez.


Aşağıdaki @ 4k4'ün cevabının birçok avantajı var, ancak akıl sağlığınız için, yerine: content.field_gallery_images, 'for' döngüsünde node.field_gallery_images ile döngüdeki her bir görüntü varlığını verirdiniz.
RominRonin

Yanıtlar:


9

Düğüm şablonundaki görüntü alanını diğer herhangi bir alan gibi yazdırın:

{{ content.field_gallery_images }}

Ardından, birden çok alan öğesinde döngü oluşturmak için alan dalını kullanın:

Alan - Alan-galeri-images.html.twig

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

1

D8'de bir karusel üretecek şekilde görüntülerim üzerinde bir foreach döngüsü yapabildim.

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

Büyük yardım teşekkürler. Tavşan deliğini dalda anlayabildiğinde neden drupal yapıyorsun? : D
cwiggo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.