5

在 Twig 中,我可以通过 2 种方式进行设置

{% set car = 'Honda' %}

或者

{% set car %}Honda{%endset%}

第二种方式是“捕获”

当我尝试将变量用作数组中的索引时,例如,

{{ cars[car].wheels | length }}

设置变量的第二种方法不起作用。为什么?

4

2 回答 2

5

在 Twig 中打开调试模式。使用调试扩展查看 2 个场景中的变量。

第一种方式

{% set car = 'Honda' %}
{% debug car %} 

会告诉你那辆车还是一串本田

然而,第二种方式

{% set car %}Honda{%endset%}
{% debug car %}

会告诉你这辆车现在是

Twig_Markup 对象( [content:protected] => car )

因此,如果要将变量用作数组中的键或索引,请不要使用捕获作为设置变量的方法。

更新:对于大于 1.5 的 Twig 版本,使用转储替换调试

例如:

{% set car = 'Honda' %}
{% debug car %} 

例如:

{% set car %}Honda{%endset%}
{% debug car %}
于 2011-07-05T22:32:12.250 回答
2

您也可以像这样使用第二种方式(您应该修剪汽车变量):

{% set car %}Honda{%endset%}

{{ cars[car|trim].wheels | length }}
于 2013-05-25T09:50:35.253 回答