web-dev-qa-db-ja.com

twigビューテンプレートからコンテンツタイプデータを取得する

カスタムコンテンツタイプがあり、すべての設定を表示してブロックし、適切に機能しています。 kintを使用してnodeまたはその他のブロックテンプレートファイルからアクセスしようとすると、_views-view--testimonials--block_1.html.twig_ NULL値が返されます。

ブロックテンプレートをカスタマイズする前に、_content-types_フォルダーにコンテンツタイプに直接アクセスするためのファイルがありました:_node--testimonials.html.twig_これは次のような値にアクセスできます:_{{ node.field_testimonial_author.value }}_

私の質問は、ブロックテンプレートファイルから_node.field_testimonial_author_にアクセスするにはどうすればよいですか? (これは_views-view--testimonials--block_1.html.twig_です)

私はこれにまったく間違ってアプローチしているのかもしれません。もしそうなら、私を助ける教育リソースを提供してください。 Drupal 7から来る)ここでの学習曲線は、基本的にレンガの壁です。

前もって感謝します。

ブロックには、他のエンティティタイプと同じ変数はありません。それらは、テーマフックの実装によって異なります。そのため、ブロックに{{ node.field }}の概念がなく、情報は存在しません。同じ原則が、ビュー、メディア、段落、およびその他のエンティティに適用されます。たとえば、テンプレートの段落のフィールドを参照するには、{{ node.field_foo }}を呼び出さず、{{ paragraph.field_foo }}を呼び出します。

ビューブロックがノードの詳細ページにレンダリングされているからといって、同じtwigテンプレートが自動的にノードオブジェクトを参照するという意味ではありません。

ビューがこのブロック表示を構築している場合、出力するフィールド(作成者)をフィールドに追加します。

自分の心を吹き飛ばしたい場合、ノードのフィールドを返すビューがある場合は、レンダリングされたコンテンツモードを使用するように表示を変更し、表示モードを選択します(ティーザーで開始)。このアプローチwillを使用すると、node--node-type twigテンプレートを使用できます。ビューはフィールドをビューに印刷する代わりにエンティティをレンダリングするためです。ビューの出力はノードタイプ自体の表示モードによって駆動され、ほとんどの場合、はるかに管理しやすい結果になります。

3
Kevin