Symfony - Twig - 动态变量 - 如何在循环

时间:2015-10-23 15:15:49

标签: symfony twig concatenation

我必须在request.locale

旁边连接两个变量

我向你解释:

我有一个名为Lexicon的实体,其中包含多个字段: wordFrwordEndefinitionFrdefinitionEn

我尝试做类似的事情,根据Fr替换Enrequest.locale,但它不起作用:

             {% set locale = '' %}

             {% if app.request.locale == "fr" %}
                 {% set locale = 'Fr' %}
             {% else %}
                 {% set locale = 'En' %}
             {% endif %}

             {% for wordList in wordsList %}
                 <tr>
                     <td>{{ wordList.word~locale }}</td>
                     <td>{{ wordList.definition~locale }}</td>
                 </tr>
             {% endfor %}

如何根据区域设置{{ wordList.wordFr }}{{ wordList.wordEn }}localeFr替换var En?谢谢!

与此同时,我做到了这一点,但它太长而且重复......

                {% if app.request.locale == "fr" %}
                    {% for listeMots in listeMotsLexique %}
                        <tr>
                            <td>{{ wordList.wordFr }}</td>
                            <td>{{ wordList.definitionFr }}</td>
                        </tr>
                    {% endfor %}
                {% else %}
                    {% for listeMots in listeMotsLexique %}
                        <tr>
                            <td>{{ wordList.wordEn }}</td>
                            <td>{{ wordList.definitionEn }}</td>
                        </tr>
                    {% endfor %}
                {% endif %}

1 个答案:

答案 0 :(得分:5)

您想要的是使用记录为here的Twig attribute函数。

它允许您使用动态变量名称。 你必须做那样的事情:

{{ attribute(wordList, 'mot'~locale) }}

你基本上说你想要'mot'~locale对象中的wordList