首先; http://twig.sensiolabs.org/doc/filters/batch.html
我的问题是,我想基于循环索引显示x图像。
如果批处理循环是奇数,则显示2个图像(在子循环中循环两次),否则仅显示1个图像。 (在子循环中循环一次)。
这是我的代码,但它无效。
有什么想法吗?
{% set batch_value = 2 %}
{% for row in getImages(gallery, 'Galeri', 'Detay')|slice(0, 5)|batch(batch_value) %}
<div class="gallery-column {% if loop.index is odd %}gallery-thumbs{% else %}gallery-original{% endif %}">
{% for image in row|slice(0, loop.index is odd ? 2 : 1) %}
<div class="image-item">
<a class="fancybox" rel="gallery" href="{{ asset(image.image) }}">
<figure>
<img src="{{ asset(image.image) }}">
</figure>
<div class="text-wrapper">
<div class="align-content">
<div class="text-content">
<i class="fa fa-2x fa-search"></i>
</div>
</div>
</div>
</a>
{{ batch_value }}
</div>
{% endfor %}
{% if loop.index is odd %}
{% set batch_value = 1 %}
{% else %}
{% set batch_value = 2 %}
{% endif %}
</div>
{% endfor %}
以下是截图:
答案 0 :(得分:0)
我不完全确定你要做什么,但我希望这会有所帮助:
Boilerplate代码
{% set images = getImages(gallery, 'Galeri', 'Detay') %}
{% for key, row in images|slice(0, 5)|batch(big == false ? 2 : 1) %}
{% for image in row %}
<img src="{{ asset(images[key].image) }}" />
{% endfor %}
{% endfor %}
当你已经将变量分配给“row”时,我真的不明白为什么你需要内循环