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:
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
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.