如何从返回数组的twig扩展访问数据?

时间:2017-07-21 11:29:28

标签: php twig

我有一个返回数组的自定义Twig扩展名:

$base64Decode = new Twig_Filter('base64_decode', function ($string) {
    return unserialize(base64_decode($string));
});

在我的模板中,我可以看到数组使用{{dump(iextra | base64_decode)}}到达并输出:

array(5) { ["discount"]=> int(0) ["product_size"]=> string(5) "Fruit" ["sub1"]=> string(0) "" ["sub2"]=> string(0) "" ["sub3"]=> string(0) 

但我无法弄清楚如何访问我需要的值...这不起作用:

{% for x in (i.extra|base64_decode) %}
product_size: {{x.product_size}}
sub1: {{x.sub1}}
sub2: {{x.sub2}}
sub3: {{.xsub3}}
{% endfor %}

这个for循环在另一个循环中,但我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的过滤器返回数组,因此您需要通过set将其输出分配给变量:

{% set data = i.extra|base64_decode %}
{{ data.product_size }}