如何在对象属性的名称中使用Twig for循环中的索引?

时间:2016-10-07 21:10:26

标签: for-loop indexing escaping twig

我正在尝试在对象的属性名称中使用for循环的索引。这可能吗?

{% for i in 0..20 %}

    {% include 'template.twig' with {
        title: object.property_{{i}}_title,
        length: object.property_{{i}}_length,
        width: object.property_{{i}}_width
    } %}

{% endfor %}

这会导致Twig错误。是否可以在对象属性的名称中使用for循环中的i索引?

1 个答案:

答案 0 :(得分:1)

你有几种方法:

插补:

{%
    include 'template.twig' with {
        title: object["property_#{i}_title"],
        length: object["property_#{i}_length"],
        width: object["property_#{i}_width"]
    } 
%}

级联:

{%
    include 'template.twig' with {
        title: object["property_"~i~"_title"],
        length: object["property_"~i~"_length"],
        width: object["property_"~i~"_width"]
    } 
%}

或属性函数(来自@DarkBee的/ cc评论):

{%
    include 'template.twig' with {
        title: attribute(object, 'property_'~i~'_title'),
        length: attribute(object, 'property_'~i~'_length"),
        width: attribute(object, 'property_'~i~'_width'),
    } 
%}

请参阅twigfiddle上的a live demo