twig动态变量调用

时间:2015-07-14 10:59:10

标签: php symfony twig template-engine

我将3种语言的数据传递给twig模板并以这种方式显示这些数据:

{% set lang=app.request.get("lang")%}
{% for item in contests%}
    {% if lang=="fa"%}
        {{item.titlefa}}
    {% elseif lang=="en"%}
        {{item.titleen}}
    {% elseif lang=="ar"%}
        {{item.titlear}}
    {% endif%}
{% endfor%}

它是wirking但是我必须在"竞赛"中为每个对象创建3条件。 如何在此逻辑中显示数据:

{% set lang=app.request.get("lang")%}
 {{item.title~lang}}
{% endfor%}

可以在比赛中调用适当的方法

1 个答案:

答案 0 :(得分:8)

您可以使用attribute TWIG函数在运行时调用方法名称,例如:

    {% set lang=app.request.get("lang")%}
    {% methodname = 'title'~lang %}
      {% for item in contests%}
        {{ attribute(item, methodname) }}
      {% endfor%}

希望这个帮助