2

Twig で関数 (またはその他のもの) を作成する方法があるかどうか疑問に思っていたので、for ループで次の要素と前の要素にアクセスできます。このようなもの:

{% for i in items %}

    {% if i == previous() %}
        <p>yes</p>
    {% endif %}

{% endfor %}

アップデート

目標は、次のようなチェックがたくさんあることです

if current.name == prev.name 
    do somethig 
else 
    do another thing 

そして次も同じ

ソートフィルターを書いた後、問題が大きくなりました。

{% set items = allitems|sortbyname %}

{% for item in items %}
    {{ item.name }}
{% endfor %}

ここにアイテムがソートされています

{% for item in items %}
    {{ items[loop.index0].name }}
{% endfor %}

ここではありません

だから私は次のようなものを使用することはできません:

次の要素にアクセスするための if item.name == items[ loop.index0 + 1 ].name

これらの問題を克服する方法がわかりません:(助けてもらえますか?

4

5 に答える 5

1

のようなものはどうですか

{% set previous_name = '' %}
{% for i in items %}

    {% if i.name == previous_name %}
        <p>yes</p>
    {% else %}
        <p>no</p>
    {% endif %}

    {% set previous_name = i.name %}
{% endfor %}

ソース: http://twig.sensiolabs.org/doc/templates.html#setting-variables

于 2013-08-14T11:19:01.317 に答える