Twig - 插值变量

时间:2014-06-08 15:34:40

标签: php symfony twig templating

我有以下内容:

{% if promo.monday_unavailable == 1 %} 
    not available mondays 
{% elseif promo.monday_available == 1%}
    available mondays 
{% else %}
    available mondays from {{promo.monday_start}} until {{promo.monday_end}}
{% endif %}
<br />
{% if promo.tuesday_unavailable == 1 %} 
    not available tuesdays 
{% elseif promo.tuesday_available == 1%}
    available tuesdays 
{% else %}
    available tuesdays from {{promo.tuesday_start}} until {{promo.tuesday_end}}
{% endif %}
<br />

...

我想为一周中的每一天做些事。

我想知道是否有一种方法可以简化代码阅读

{% for i in ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] %}

{% if promo.~i~"_unavailable" == 1 %} 
    not available mondays 
{% elseif promo.~i~"_available" == 1%}
    available mondays 
{% else %}
    available mondays from {{promo.~i~"_start"}} until {{promo.~i~"_end"}}
{% endif %}
<br />

{% endfor %}

With Twig。

任何帮助将不胜感激。我不知道要搜索哪些关键字了。

3 个答案:

答案 0 :(得分:8)

我知道这是一个旧线程,但twig支持内联插值,如:

{{i18n("language_#{langId}")}}

重要的是要插入的字符串是双引号。

答案 1 :(得分:4)

通过在键盘上捣碎我的额头来找到答案。

而不是

{% if promo.~i~"_unavailable" == 1 %} 

使用

{% promo[i~"_unavailable"] == 1 %)

答案 2 :(得分:0)

您可以尝试使用我的代码

{% for i in ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] %}
    {% set key = i ~ '__unavailable' %}

    {% if (promo[key]) eq something %}
        //
    {% endif %}
{% endfor}