首页 > 解决方案 > 值“if”的意外令牌“名称”(预期“语句块结束”)

问题描述

我尝试将 Symfony 升级到 4.4.17,但我收到了上面的错误:

{% for lang, group in lang_groups if lang == from %}

这是代码。我不知道如何解决这个问题。

    <div class="input-style">
        <input type="text" name="query" value="{{ query|default('') }}" />
    </div>
    <div class="select-style">
        <select name="lang_from">
            {% for lang, group in lang_groups %}
                <option value="{{ lang }}"{% if from == lang %} selected{% endif %}>{{ group.label }}</option>
            {% endfor %}
        </select>
    </div>
    <a href="javascript:void(0)" class="reverse-lang-pair" title="reverse language pair">&#8644;</a>
    {% for lang, group in lang_groups if lang == from %}
        <div class="select-style lang-group" data-lang="{{ lang }}">
            <select name="{{ lang }}">
                {% for lang_to, data in group.to %}
                    <option value="{{ lang_to }}"{% if to|default('') == lang_to %} selected{% endif %}>{{ data.label }}</option>
                {% endfor %}
            </select>
        </div>
    {% endfor %}

标签: symfonysymfony4

解决方案


你必须把if声明从你的for...in

所以代替这个

    {% for lang, group in lang_groups if lang == from %}
        <div class="select-style lang-group" data-lang="{{ lang }}">
            <select name="{{ lang }}">
                {% for lang_to, data in group.to %}
                    <option value="{{ lang_to }}"{% if to|default('') == lang_to %} selected{% endif %}>{{ data.label }}</option>
                {% endfor %}
            </select>
        </div>
    {% endfor %}

如果我理解你想要做什么,你应该做这样的事情:

{% for lang, group in lang_groups %}
  {% if lang == from %}
        <div class="select-style lang-group" data-lang="{{ lang }}">
            <select name="{{ lang }}">
                {% for lang_to, data in group.to %}
                    <option value="{{ lang_to }}"{% if to|default('') == lang_to %} selected{% endif %}>{{ data.label }}</option>
                {% endfor %}
            </select>
        </div>
    {% endif %}
{% endfor %}


推荐阅读