【EC-CUBE3】Twigでfor文から抜ける方法

【EC-CUBE3】Twigでfor文から抜ける方法

こんにちは。
ec-cubeでECサイトを作っていく中で、カスタマイズを行っているのですが、
Twigにまだ慣れなくて、けっこう詰まる部分が多いのですが、
今回も、for文を抜け出す処理を書きたかったのですが、なかなかできませんでした。

色々調べてみたけど、自分の検索スキルが低いのか、なかなか情報が得られない。
そして、ついに解決に至ったので、その方法をシェアしたいと思います。

Twigでbreak処理をするには

まず結論から言うと、どうやらTwigにはbreakやcontinueに相当する命令が無いようです。
Twigの公式リファレンスでそのように書いています。
というわけで、処理を抜けたり、飛ばしたりする場合には、自力でやるしかないようです。
んーめんどくさい。

if文を使って処理を抜けるようにする

正しくは処理を抜けるというより、処理をさせないようにします。
例えば、コードで書くとこんな感じ。

//カウンタ変数を定義
{% set count = 0 %}

{% for Category in Categories %}

    //まだ一度もカテゴリー名が表示されていなければ処理する
    {% if count == 0 %}

          //カテゴリー名を表示
          {{ Category.name }}
          //カウンタ変数をインクリメント
          {% set count = 1 %}

    {% endif %}

{% endfor %}

この例の場合、一度だけ処理をしたい場合ですね。
カウンタ変数で処理回数を数えて、
一回でも処理をしたらあとは処理をしないようにif文で制御する。
という感じです。

まとめ

Twigめんどくさい。
というか、慣れの問題なんでしょうか。
慣れるのに時間がかかりそうです。