Symfony:multiple";至于;细枝上的环

Symfony:multiple";至于;细枝上的环,symfony,for-loop,twig,Symfony,For Loop,Twig,我有所有这些{%for%}循环,它们一个嵌套在另一个循环中,但我希望它们都在同一个级别。相互独立,因为像这样,我的守门员只有在有后卫,中场的情况下才会出现。。。我希望他们都出现,无论一个类别是失踪或没有 <tbody> {% for defenser in defensers %} {% for midfielder in midfielders %} {% for forward in forwards %}

我有所有这些{%for%}循环,它们一个嵌套在另一个循环中,但我希望它们都在同一个级别。相互独立,因为像这样,我的守门员只有在有后卫,中场的情况下才会出现。。。我希望他们都出现,无论一个类别是失踪或没有

 <tbody>
            {% for defenser in defensers %}
            {% for midfielder in midfielders %}
            {% for forward in forwards %}
            {% for gk in goalkeepers %}
            <tr>
                <td>
                    <div class="player-in-club">
                        <a href="{{ path('show_player', {'id': gk.id }) }}">{{ gk.name }}</a>
                    </div>
                    
                </td>
                <td>
                    <div class="player-in-club">
                        <a href="{{ path('show_player', {'id': defenser.id }) }}">{{ defenser.name }}</a>
                    </div>
                </td>
                <td>
                    <div class="player-in-club">
                        <a href="{{ path('show_player', {'id': midfielder.id }) }}">{{ midfielder.name }}</a>
                    </div>
                </td>
                <td>
                    <div class="player-in-club">
                        <a href="{{ path('show_player', {'id': forward.id }) }}">{{ forward.name }}</a>
                    </div>
                </td>
            </tr>
            {% endfor %}
            {% endfor %} 
            {% endfor %} 
            {% endfor %}
        </tbody>

{防御程序%中的防御程序为%1}
{中场球员占%}
{转发%中的转发%}
{守门员中gk的百分比%}
{%endfor%}
{%endfor%}
{%endfor%}
{%endfor%}

如果将此元素放在for循环前面,则可以确保数组始终包含至少一个(空字符串)元素:

{% if defensers is empty %}
    {% set defensers = [""] %}
{% endif %}
{% if midfielders is empty %}
    {% set midfielders = [""] %}
{% endif %}
{% if forwards is empty %}
    {% set forwards = [""] %}
{% endif %}
{% if goalkeepers is empty %}
    {% set goalkeepers = [""] %}
{% endif %}
但我觉得你想要完全不同的东西。按照您设置循环的方式,它们将打印每个可能的行组合

如果您只需要一个在项目可用时填充的表,您可能希望使用该表而不是循环:

    {% set row_count = max(defensers|length, midfielders|length, forwards|length, goalkeepers|length) %}
    <tbody>
        {% for index in range(0, row_count - 1) %}
        <tr>
            <td>
                <div class="player-in-club">
                    {% if goalkeepers[index] %}
                        <a href="{{ path('show_player', {'id': goalkeepers[index].id }) }}">{{ goalkeepers[index].name }}</a>
                    {% endif %}
                </div>

            </td>
            <td>
                <div class="player-in-club">
                    {% if defensers[index] %}
                    <a href="{{ path('show_player', {'id': defensers[index].id }) }}">{{ defensers[index].name }}</a>
                    {% endif %}
                </div>
            </td>
            <td>
                <div class="player-in-club">
                    {% if midfielders[index] %}
                    <a href="{{ path('show_player', {'id': midfielders[index].id }) }}">{{ midfielders[index].name }}</a>
                    {% endif %}
                </div>
            </td>
            <td>
                <div class="player-in-club">
                    {% if forwards[index] %}
                    <a href="{{ path('show_player', {'id': forwards[index].id }) }}">{{ forwards[index].name }}</a>
                    {% endif %}
                </div>
            </td>
        </tr>
        {% endfor %}
    </tbody>
{%set row|u count=max(防守队员|长、中场队员|长、前锋|长、守门员|长)%}
{范围(0,行计数-1)%%中的索引的%
{%if守门员[index]}
{%endif%}
{%if防御程序[index]}
{%endif%}
{%if中场队员[索引]]}
{%endif%}
{%if转发[index]}
{%endif%}
{%endfor%}

谢谢您的回答。我已经尝试过了,但是我得到了一个错误,上面写着:“键为“0”的数组的键“1”不存在。“将
default
添加到每个
if
,例如
{%if forwards[index]| default%}
非常感谢您,它工作得非常好!你能解释一下“默认值”的作用吗?请参阅文档。这有点像执行
if-isset($forwards[$index])
来说明数组中不存在的元素