在枝條,我可以在兩個方面爲什麼Twig在使用set作爲捕獲時不能將變量用作數組的索引?
{% set car = 'Honda' %}
或
{% set car %}Honda{%endset%}
,其中第二個方法是「捕獲」
當我嘗試使用變量作爲做一套索引 例如,
{{ cars[car].wheels | length }}
第2 wa設置變量的y不起作用。爲什麼?
在枝條,我可以在兩個方面爲什麼Twig在使用set作爲捕獲時不能將變量用作數組的索引?
{% set car = 'Honda' %}
或
{% set car %}Honda{%endset%}
,其中第二個方法是「捕獲」
當我嘗試使用變量作爲做一套索引 例如,
{{ cars[car].wheels | length }}
第2 wa設置變量的y不起作用。爲什麼?
打開Twig中的調試模式。 使用調試擴展在2種情況下查看變量。
第一種方式
{% set car = 'Honda' %}
{% debug car %}
會告訴你,汽車仍然是一個字符串本田
然而,第二個辦法
{% set car %}Honda{%endset%}
{% debug car %}
會告訴你現在的車是
Twig_Markup Object([content:protected] => car)
因此,如果您想將它用作數組中的鍵或索引,請不要使用capture來設置變量。
更新:對於枝杈版本大於1.5使用dump更換調試
如:
{% set car = 'Honda' %}
{% debug car %}
如:
{% set car %}Honda{%endset%}
{% debug car %}
您也可以使用這樣的第二個方法(你應該修整車變量):
{% set car %}Honda{%endset%}
{{ cars[car|trim].wheels | length }}
@kissmyface h ttp://meta.stackexchange.com/questions/17463/should-i-ask-a-question-i-know-the-answer-to/17467#17467 –
酷:-)謝謝 – calumbrodie
看起來像調試已棄用在樹枝1.5。文檔建議使用dump而不是http://twig.sensiolabs.org/doc/functions/dump.html –