web-dev-qa-db-fra.com

Obtenez les champs de noeud référencés dans twig

Dans Drupal 8, j'ai un type de contenu, qui a un champ "entity_reference" et je souhaite accéder aux champs du nœud référencé dans twig template. The kint () la sortie pour le champ est: enter image description here

Dans cette liste, je ne trouve pas les valeurs de champ du nœud référencé. Comment puis-je (si possible) charger le nœud ou les champs/valeurs de nœud dans une brindille?

Meilleur,

Alari

6
Alari Truuts

Les nœuds référencés sont à l'intérieur de la liste et vous pouvez obtenir le premier élément de liste avec .0, Le nœud référencé avec .entity, Puis la première valeur de champ:

Par exemple, si vous êtes dans un modèle de page ou de nœud:

{{ node.field_reference.0.entity.field_in_referenced_node.0.value }}

Vous pouvez ignorer .0 Dans les deux cas, lorsque vous souhaitez uniquement obtenir la première valeur.

D'autres exemples pourraient ressembler à ceci, mais votre question n'est pas claire exactement où vous êtes:

{{ item.content['#item'].entity.field_in_referenced_node.value }}
{{ elements['#items'].0.entity.field_in_referenced_node.value }}

Modifier: Compter les éléments dans des champs à valeurs multiples

{{ node.field_reference.getvalue|length }}

Vous ne pouvez pas utiliser count() dans twig, car ce n'est pas sur la liste blanche pour les méthodes autorisées. Cela utilise getvalue() pour obtenir le tableau du champ, puis compte les clés du tableau.

14
4k4