/ / Reemplazar la variable de cadena dentro del bucle - Symfony, ramita

Sustituir cadena variable dentro del bucle - Symfony, ramita

Tengo un bucle en ramita / sinfonía, así:

{% for breadcrumb in page.breadcrumbs %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endfor %}

Estoy tratando de verificar la primera variable en el bucle for. Si eso es igual a Artists entonces la parte html necesita ser reemplazada por una nueva pieza de código.

Entonces lo que hice fue esto:

 {% for breadcrumb in page.breadcrumbs %}

{% if loop.first %}
{% if breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>{% else %}<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}

{% endfor %}

Esto funciona, sin embargo, cuando el camino bradcrumb es más profundo que dos niveles, entonces todo lo que se encuentra después del segundo nivel ya no se muestra. Así que lo que quiero decir es esto:

home > Artist > //nothing shown here anymore. Loop stops I think??

Instead of

home > artists > category1 > subcategory 2

¿Alguien sabe lo que estoy haciendo mal? ¿Por qué el bucle se detiene con este código?

Respuestas

1 para la respuesta № 1

El bucle continúa, pero ha envuelto toda la lógica de salida en el loop.first condicional variable.

Necesitas hacer esto en su lugar:

{% for breadcrumb in page.breadcrumbs %}
{% if loop.first and breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endfor %}

De esta manera usted está comprobando ambos La primera iteración del bucle y si el título es "Artistas".


0 para la respuesta № 2

Solo está marcando la primera iteración (primer bucle) y no hace nada con el resto:

{% for breadcrumb in page.breadcrumbs %}

{% if loop.first %}
{% if breadcrumb.title == "Artists" %}
<a href="{{ "artists" | url }}">{{ "Artists" | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}

{% endfor %}