2016-07-06 9 views
2

私はTwigテンプレートとDrupal 8の新機能です。ノードテンプレートファイルのいくつかのフィールドをループするのに少し問題があります。基本的には、Dateフィールドは最大2フィールドに制限されています.2フィールドを入力した場合は、日付範囲のように表示したいと思います。Drupalのループスルーフィールド8

私はこれを達成するために、複数のフィールドが存在するかどうかを確認するためにforループ/ if文を使用し、それに応じてフィールド出力を表示しています。

{% set dateLength = "" %} 
    {% for date in content.field_date['#items'].getValue() %} 
    {% set dateLength %} 
     {{ loop.length }} 
    {% endset %} 
    {% endfor %} 

    {% if dateLength == 2 %} 
    {{ content.field_date['#items'].getValue()|last.value }}—{{ content.field_date['#items'].getValue()|first.value }} 
    {% else %} 
    {{ content.field_date['#items'].getValue() }} 
    {% endif %} 

は、私がこれをoverthinkingてるなら、私に教えてください:

は、ここで私がこれまで持っているものです。どんな指針も大変ありがとうございます。ご協力いただきありがとうございます。

マーク。

答えて

1

私はあなたが以下のようlength twig filterでdateLength変数を計算することをお勧め:

{% set dateLength = content.field_date['#items'].getValue() | length %} 

・ホープ、このヘルプ

+0

私はDrupalの専門家ではないよ、多分また '{%セットdateLength =コンテンツすることができ.field_date ['#items'] |長さ%} ' – Matteo

+1

ああ、私は物事を複雑にすることは間違いありませんでした。どうにかして、私はTwigのドキュメントをふるいにかけたときに長さのフィルターを見逃しました。完璧に動作します...あなたの入力をありがとう! –

+0

こんにちは@MarkKようこそ! – Matteo