我有一个twig模板,我传递了这个参数:
mediasInAlbums = array(
"albumId1" => array(media1, media2, media3...),
"albumId2" => array(media1, media2, media3...),
"albumId3" => array(media1, media2, media3...),
...
);
以下是模板示例:
{% for album in albums %}
<div class="pictures_wrapper" id="pictures_wrapper_{{ album.id }}">
{% for media in attribute(mediasInAlbums, album.id) %}
<div class="picture_wrapper">
<div class="picture" id="picture_{{ media.id }}"
data-src="www/images/medias/{{ media.fileName }}.{{ media.fileExtension }}"
data-slide-to="{# HELP NEEDED HERE #}">
</div>
</div>
{% endfor %}
</div>
{% endfor %}
我试图获取mediasInAlbums[albumId][media(key+1)]
的ID。例如,如果loop.index = 2
,我想访问mediasInAlbums[albumId][media3]->id
。
有人能帮我这个吗? : - )
找到解决方案:
{{ attribute(mediasInAlbum, loop.index0 + 1).id }}
答案 0 :(得分:0)
您可以将表达式用作键。
尝试
{{ mediasInAlbums[albumId]["media" ~ (loop.index+1)].id }}
所以你的模板看起来像
{% for album in albums %}
<div class="pictures_wrapper" id="pictures_wrapper_{{ album.id }}">
{% for media in attribute(mediasInAlbums, album.id) %}
<div class="picture_wrapper">
<div class="picture" id="picture_{{ media.id }}"
data-src="www/images/medias/{{ media.fileName }}.{{ media.fileExtension }}"
data-slide-to="{{ mediasInAlbums[album.id]["media" ~ (loop.index+1)].id }}">
</div>
</div>
{% endfor %}
</div>
{% endfor %}