Twig - 访问阵列[key +1]

时间:2017-07-22 14:32:31

标签: twig

我有一个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 }}

1 个答案:

答案 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 %}