Twig テンプレートの for ループ内で break または continue を使用するにはどうすればよいでしょうか? 質問する

Twig テンプレートの for ループ内で break または continue を使用するにはどうすればよいでしょうか? 質問する

単純なループを使用しようとしましたが、実際のコードではこのループはより複雑で、break次のような反復が必要です。

{% for post in posts %}
    {% if post.id == 10 %}
        {# break #}
    {% endif %}
    <h2>{{ post.heading }}</h2>
{% endfor %}

Twig で PHP 制御構造の動作breakやを使用するにはどうすればよいですか?continue

ベストアンサー1

これはほぼ反復処理のフラグとして新しい変数を設定することで実行されますbreak

{% set break = false %}
{% for post in posts if not break %}
    <h2>{{ post.heading }}</h2>
    {% if post.id == 10 %}
        {% set break = true %}
    {% endif %}
{% endfor %}

見苦しいが動作する例continue:

{% set continue = false %}
{% for post in posts %}
    {% if post.id == 10 %}
        {% set continue = true %}
    {% endif %}
    {% if not continue %}
        <h2>{{ post.heading }}</h2>
    {% endif %}
    {% if continue %}
        {% set continue = false %}
    {% endif %}
{% endfor %}

しかし〜があるいいえパフォーマンス上の利点は、フラットな PHP のような組み込みステートメントと同様の動作のみですbreakcontinue

おすすめ記事