刚刚开始使用树枝模板,我遇到了一个问题。我有一个数组,我正在循环并从中提取数据,在这个数组中我有另一个我需要访问的数组(图像),问题是我似乎无法让它工作。
这是我有的饲料
0 =>
array (size=8)
'id' => int 1
'url' => string 'http://localhost' (length=16)
'image' => string '8cgbfenx2n1.png' (length=15)
'type' => string 'image' (length=5)
1 =>
array (size=10)
'id' => int 17
'images' =>
array (size=3)
0 => string 'xjv5y4asev2.png' (length=15)
1 => string 'kwwss8f6r34.gif' (length=15)
2 => string '68yfnckk3c5.png' (length=15)
'text' => string 'text' (length=4)
'type' => string 'article' (length=7)
然后我循环并像这样访问
{%- if feed is not empty -%}
{% for feedItems in feed %}
<!-- article -->
{% if feedItems.type == 'article' %}
<!-- image -->
<div class="gridTile-article-image">
{% for image in feedItems.images %}
{{ image }} <br />
{% endfor %}
</div>
{% endif %}
{% endfor %}
{% endif %}
这不会引发错误但也不会输出任何内容,任何人都有任何想法必须实现这一点吗?
谢谢!
答案 0 :(得分:4)
看起来你正在尝试输出整个数组而不是其中一个索引。 feedItem.images
是一个数组,如下所示:
1 =>
array (size=10)
'id' => int 17
'images' => // The value of our index...
array (size=3) // ..is an array
0 => string 'xjv5y4asev2.png' (length=15)
1 => string 'kwwss8f6r34.gif' (length=15)
2 => string '68yfnckk3c5.png' (length=15)
'text' => string 'text' (length=4)
'type' => string 'article' (length=7)
我的猜测是你必须在最里面的块中引用images
的索引。为此,正如此答案所示,请使用 attribute 功能:
Accessing array values using array key from Twig
所以你的代码就像这样:
{%- if feed is not empty -%}
{% for feedItems in feed %}
<!-- article -->
{% if feedItems.type == 'article' %}
<!-- image -->
<div class="gridTile-article-image">
{% for image in feedItems.images %}
{{ attribute(image, 0) }} <br /> // Assuming you want to print "xjv5y4asev2.png"
{% endfor %}
</div>
{% endif %}
{% endfor %}
{% endif %}
答案 1 :(得分:2)
所以我找出了我所缺少的东西。以下(原始)语法我工作得很好,但我做了一个非常愚蠢的人为错误。
<div class="gridTile-article-image">
{% for image in feedItems.images %}
{{image}}
{% endfor %}
</div>
这个返回空白的原因是因为我查询的Feed中的图像数组实际上是空的!我正在看一个已经填充的阵列,但这不是“#39;”文章的类型。因此我在该区块内的代码没有返回任何图像,因为没有任何图像!
感谢您的帮助!