kgaut.net // Développeur web PHP / Drupal freelance
contactez-moi

Drupal 8 & Drupal 9 - Entité - Champ de base « Référence à une entité » (entity reference)

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

Je me suis rendu compte que je n'avais jamais documenté comment ajouter une propriété « référence à une entité » :

Pour un type d'entité « client » :

$fields['client'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('Client'))
  ->setSetting('target_type', 'client')
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE);

Pour un nœud :

$fields['contenu'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('Contenu'))
  ->setSetting('target_type', 'node')
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE);

Il est aussi possible de restreindre le/les bundle(s) :

$fields['contenu'] = BaseFieldDefinition::create('entity_reference')
  ->setLabel(t('Contenu'))
  ->setSetting('target_type', 'node')
  ->setSetting('handler_settings', [
    'target_bundles' => [
      'article' => 'article',
      'page' => 'page',
    ]
  ])
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE);

 

Contenus en rapport

snippet · 28 Jul 2017 Drupal 8 - Entité - Champ de base « Référence à un terme de taxonomie » snippet · 9 Oct 2020 Drupal - Entité - Champ de base « Référence à un media »

Commentaires (0)