web-dev-qa-db-fra.com

Vue pour référence d'entité inversée, vers l'arrière vers l'avant

Le besoin est de présenter dans une page de destination une vue de toutes les pages qui font référence à cette page de destination. Ainsi, cette vue recherchera dans un autre type de contenu, pour trouver dans un champ de référence qui contient le même identifiant.

Le type de contenu de la page de destination a plusieurs nœuds enfants.

Le type de contenu de page a une référence d'entité field_back_parent pour un parent de nœud

Types de contenu Landing page (1) parent, Page (2) enfant, Page (3) enfant,

Je voudrais cela en utilisant l'interface utilisateur dans l'admin. Donc, aucune entitéQuery dans cette opportunité.

4
Carlos
  • Aucun module supplémentaire ne doit être installé.
  • Aucun codage nécessaire. Il suffit de créer un site pour Drupal 8.
  • Nous devons d'abord vérifier si nos types de contenu sont prêts.

Le type de contenu de la page de destination ne nécessite aucune modification. Le type de contenu de page nécessite un champ de type Référence d'entité .

  • Ajouter un champ -> Ajouter un nouveau champ = Contenu de référence

Ensuite, dans l'onglet Modifier, choisissez votre type de contenu (parent)

enter image description here

Après l'enregistrement, vous obtiendrez ...

enter image description here

Maintenant, allez dans admin/structure/views et + Ajouter une vue

enter image description here

Dans ce cas, nous allons vérifier l'option pour créer un bloc

enter image description here

À l'avance enter image description here

Ajouter une relation pour notre field_back_parent dans le type de contenu de la page. Ceci est important pour connecter les deux types de contenu.

enter image description here

Vous devez cocher Exiger cette relation .

enter image description here

À l'avance enter image description here

Ensuite Ajoutez un filtre contextuel pour notre page de destination de type de contenu actuel. De cette façon, nous obtiendrons notre identifiant de nœud réel à utiliser dans la vue. Donc, maintenant, nous ne pouvons trouver que les pages qui ont le même identifiant de nœud dans field_back_parent.

Alors trouvez par ID (Contenu)

enter image description here

Sélectionnez le nom de la relation.

Cochez Fournissez la valeur par défaut -> ID de contenu de l'URL

enter image description here

Ensuite, vous obtiendrez quelque chose comme ceci:

enter image description here

En relation, vous devez avoir le contenu Word dans le côté droit

Ceci est le résultat de nos paramètres enter image description here

Si vous cliquez sur Aperçu de la mise à jour , vous corroborerez qu'il n'affiche rien.

Vous devez ajouter l'ID de nœud du parent. Dans notre cas, c'est le nœud 2 de la page de destination. enter image description here

Autre moyen de référence https://mushtaqtahir.com/blog/4/drupal-8-reverse-entity-reference-in-view

J'espère que cette info vous aidera.

6
Carlos

Vous pouvez également utiliser un module au lieu (ou au lieu de seulement) des vues principales:

https://www.drupal.org/project/reverse_entity_reference

La référence d'entité inverse ajoute un champ de référence inverse calculé à toutes les entités référencées.

0
mlncn