web-dev-qa-db-fra.com

Comment rendre les champs d'une référence d'entité dans des modèles de noeud? [Drupal 8]

Pour le contexte, je traite de deux types de contenu: article et team_profile. Dans les nœuds d'article, nous avons un champ de référence d'entité qui extrait un nœud team_profile pour servir d'informations sur l'auteur.

Je voudrais simplement rendre l'entité avec un nouveau mode d'affichage, mais notre conception a la photo définie directement au-dessus de la date et du nom publiés, l'une à côté de l'autre: screenshot of the author information design

Dans D7, je ferais dpm($content) et j'explorerais les informations sur le nœud, double-cliquer et retirer le reste du chemin de référence. J'utilise kint et je suis capable de cracher le contenu de référence d'entité à un certain niveau, {{ kint(content.field_blog_author[0]['#node']) }}. Le niveau suivant auquel je veux accéder est values, mais essayer ce qui suit me donne NULL:

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

Je voudrais finalement rendre les title et field_team_image champs du nœud référencé ( vu ici dans la sortie kint ). Je n'ai pas trouvé d'informations à ce sujet dans la documentation ou en recherchant. Quelqu'un m'aiderait-il à se décoller?

8
alexbea

#node il y a en fait le nœud actuel.

Si vous souhaitez accéder aux champs et à leurs valeurs, commencez par le nœud, pas le contenu, qui est un tableau de rendu avec les champs configurés.

Vous pouvez accéder à l'entité de référence comme ceci {{ node.field_blog_author.entity }}.

De là, vous pouvez continuer à nouveau vers le champ de l'entité référencée que vous souhaitez afficher. Vous pouvez essayer d'appeler la méthode view, avec l'affichera avec les paramètres par défaut, vous pouvez également lui passer un mode d'affichage sous forme de chaîne ou un paramètre d'affichage de tableau (pas sûr de la syntaxe exacte pour cela dans twig).

De plus, ma référence standard, voir http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet pour un excellent aperçu des entités de contenu, comment elles sont structurées et comment accéder valeurs. La plupart de cela s'applique également aux rameaux.

Et enfin, lorsque vous essayez de comprendre ce qui se trouve dans une entité de contenu, utilisez node.toArray (), qui vous donne une représentation de tableau qui est très proche de la façon dont vous pouvez y accéder en tant qu'objet. Alors que la structure interne est assez différente.

12
Berdir