/ / Nahradiť premennú reťazca vnútri slučky - symfony, vetvičky

Nahradiť premennú reťazca vo vnútri slučky - symfony, vetvička

Mám slučku v vetvičke / symfónii, ako je táto:

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

Snažím sa skontrolovať prvú premennú v slučke for Artists potom musí byť html časť nahradená novým kódom.

Takže to, čo som urobil, bolo toto:

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

Toto však funguje, keď cesta bradcrumb prechádza hlbšie ako dve úrovne, potom všetko po druhej úrovni už nie je zobrazené.

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

Instead of

home > artists > category1 > subcategory 2

Vie niekto, čo robím zle. Prečo sa slučka s týmto kódom zastaví?

odpovede:

1 pre odpoveď č. 1

Slučka pokračuje, ale ste zabalili celú výstupnú logiku do loop.first premenná podmienená.

Musíte to urobiť namiesto toho:

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

Týmto spôsobom kontrolujete oba prvá iterácia slučky a či názov je alebo nie je "Umelci"


0 pre odpoveď č. 2

"Znova len kontrolujete prvú iteráciu (prvú slučku) a so zvyškom nerobíte nič:

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