值“if”的意外标记“名称”(预期为“语句块结束”)

gre*_*tor 4 symfony symfony4

我尝试将 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 %}
Run Code Online (Sandbox Code Playgroud)

SKM*_*MTH 8

你必须把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 %}
Run Code Online (Sandbox Code Playgroud)

如果我明白你想要做什么,你应该这样做:

{% 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 %}

Run Code Online (Sandbox Code Playgroud)

  • 但它应该有效:https://twig.symfony.com/doc/2.x/tags/for.html#adding-a-condition (2认同)