web-dev-qa-db-ja.com

ノードテンプレートのエンティティ参照からフィールドをレンダリングするにはどうすればよいですか? [Drupal 8]

コンテキストについては、articleとteam_profileの2つのコンテンツタイプを扱っています。記事ノードには、作成者情報として機能するためにteam_profileノードを取得するエンティティ参照フィールドがあります。

新しい表示モードでエンティティをレンダリングするだけですが、デザインには、公開された日付と名前のすぐ上に、隣り合って写真が設定されています。 screenshot of the author information design

D7では、dpm($content)を使用してノード情報にドリルダウンし、ダブルクリックして、残りの参照パスを引き出します。私はキントを使用しており、エンティティ参照の内容を特定のレベル{{ kint(content.field_blog_author[0]['#node']) }}に吐き出すことができます。アクセスしたい次のレベルはvaluesですが、以下を実行するとNULLになります。

  • content.field_blog_author[0]['#node’][‘values’]
  • content.field_blog_author[0]['#node’]=>values
  • content.field_blog_author[0]['#node’]->values

最終的には、参照されたノードからtitleおよびfield_team_imageフィールドをレンダリングしたいと思います( kint出力で確認 )。ドキュメントに関する情報や検索による情報は見つかりませんでした。誰かが行き詰まるのを手伝ってくれませんか?

8
alexbea

#node実際には現在のノードがあります。

フィールドとその値にアクセスする場合は、コンテンツではなくノードで開始します。これは、構成されたフィールドを持つレンダー配列です。

このような参照エンティティにアクセスできます{{ node.field_blog_author.entity }}

そこから、表示したい参照エンティティのフィールドに再び進むことができます。デフォルトの設定でビューを表示して、viewメソッドを呼び出すこともできます。また、ビューモードを文字列または配列の表示設定として渡すこともできます(twigでの正確な構文については不明です)。

また、私の標準的なリファレンス、コンテンツエンティティの概要、それらの構造、アクセス方法については、 http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet を参照してください。値。そのほとんどは小枝にも当てはまります。

そして最後に、コンテンツエンティティの内容を把握する場合は、node.toArray()を使用します。これにより、オブジェクトとしてアクセスする方法に非常に近い配列表現が得られます。内部構造はかなり異なりますが。

12
Berdir