web-dev-qa-db-ja.com

twigテンプレートで段落を印刷する方法

Content type、basicがあり、field_textとfield_colorの2つのフィールドを持つ段落フィールド(field_pr)を追加しました。 twig template node--basic--full.html.twigがあります。ここには、段落フィールド(node.field_pr)の値を出力する必要があります)。追加できる段落の数は10に制限されているので、node.field_prには最大10個の値があると考えてください。

Content.field_prの配列を出力すると、巨大な配列が表示されますが、field_pr.field_textとfield_pr.field_colorの値のみが必要です。 twigテンプレートからのノードからこれを行うにはどうすればよいですか?実行できません。

以下を試しましたが、値にアクセスできないようです。何が欠けていますか?

{% for field in content.field_pr %}
   {{ field[loop.index0].entity.field_text.value }}
   {{ field[loop.index0].entity.field_color.value }}
{% endfor %}

{% for field in content.field_pr %}
   {{ field[loop.index0]['#paragraph'].field_text.value }}
   {{ field[loop.index0]['#paragraph'].field_color.value }}
{% endfor %}

これは、node.field_prフィールドに対して出力される配列の画像です。 enter image description here

6
usernameabc

現在のアプローチでそれが可能かどうかはわかりません。これが私がこれに取り組む方法です。

ノードテンプレートファイルで{{ content.field_pr }}

段落のテンプレートファイルを作成します。

パラグラフ_ [ビューモード](例:パラグラフ--default.html.twig)

パラグラフ_ [タイプ](例:パラグラフ--image.html.twig)

パラグラフ_ [タイプ] __ [ビューモード](たとえば、paragraph--image--default.html.twig)

出典: 段落のテーマDrupal 8

paragraph-[type] .html.twigでは、{{ content.field_text }}および{{ content.field_color }}

6
No Sssweat

私はこれを理解しました。 Twig Tweak を有効にすると、コンテンツを使用せずにノードオブジェクトから段落を印刷できます。

{% for item in node.field_my_paragraph_field %}
     {{ drupal_entity('paragraph', item.target_id) }}
{% endfor %}
2
user33560

page--content-type.html.twigのループ(スライダーなど)で段落フィールドを印刷するには、以下のスニペットを使用します。

{% for item in node.field_paragraph_mac_name %}
  {{ item.entity.field_title.value }}
  <img src="{{ file_url(item.entity.field_image.entity.fileuri) }}" />
{% endfor %}
2
Hashmat