在Twig,我可以用两种方式做一套
{% set car = 'Honda' %}
或
{% set car %}Honda{%endset%}
第二种方式是'捕获'
当我尝试将变量用作数组中的索引时 例如,
{{ cars[car].wheels | length }}
设置变量的第二种方法不起作用。为什么呢?
答案 0 :(得分:5)
在Twig中打开调试模式。 使用调试扩展来查看2个场景中的变量。
第一种方式
{% set car = 'Honda' %}
{% debug car %}
会告诉你汽车仍然是本田的字符串
然而,第二种方式
{% set car %}Honda{%endset%}
{% debug car %}
会告诉你汽车现在是
Twig_Markup对象([content:protected] => car)
因此,如果要将变量用作数组中的键或索引,请不要使用capture作为设置变量的方法。
更新:对于大于1.5的Twig版本,使用dump来替换debug
例如:
{% set car = 'Honda' %}
{% debug car %}
例如:
{% set car %}Honda{%endset%}
{% debug car %}
答案 1 :(得分:2)
你也可以像这样使用第二种方法(你应该修剪汽车变量):
{% set car %}Honda{%endset%}
{{ cars[car|trim].wheels | length }}