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

Posté le Vendredi 20 novembre 2020 - 10:13

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);

 

Aller plus loin ?

Ajouter un commentaire

Ne sera pas publié

Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...