/ /ループ内の文字列変数を置き換える - symfony、twig

文字列変数をループ内に置き換える - symfony、twig

私は小枝/交響曲のループを持っています。

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

forループの最初の変数をチェックしようとしています。もしそれが Artists htmlパーツを新しいコードに置き換える必要があります。

だから私がしたのはこれでした:

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

しかし、これはBradcrumbのパスが2つのレベルより深くなってから2番目のレベルの後のすべてがもう見えなくなったときに機能します。

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

Instead of

home > artists > category1 > subcategory 2

誰かが私が間違っていることを知っていますか?このコードでループが停止するのはなぜですか?

回答:

回答№1は1

ループは継続しますが、出力ロジック全体を loop.first 条件付き変数。

代わりにこれを行う必要があります:

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

あなたがチェックしているこの方法で どちらも ループの最初の繰り返し、タイトルが「アーティスト」であるかどうか


回答№2の場合は0

あなたは最初の繰り返し(最初のループ)だけをチェックし、残りは何もしないでください:

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