Twig 迭代变量

Twig iterate with variables

我有一个这样的数组:

array['a'] = {x => 1, y => 2...}
array['b'] = {x => 5, y => 7...}

我需要遍历数组,但在每种情况下我只需要输入我选择的 'a' 或 'b'。

{% for i in main %}
    {% set id = i.getId %}
    {% for j in array.id %}
         //do something like j.propertyA ...
    {% endfor %}
{% endfor %}

失败总是得到错误:"The key 'id' for array with keys 'a', 'b'... does not exist"

如果我强行写:

{% for j in array.a %}

该程序始终与 array.a 一起工作,但我需要自动与所有一起工作。

有什么想法吗?谢谢:)

我认为您需要 array|keys twig 过滤器。查看更多:http://twig.sensiolabs.org/doc/filters/keys.html.

{% for j in array.id %}更改为{% for j in array[id] %}

这是因为您正试图直接从数组(未定义)访问“id”(如所写)。使用 [id] 您的变量将替换为它的值,因此您的调用不会失败