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

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

Pour un nœud :

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

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

  1. $fields['contenu'] = BaseFieldDefinition::create('entity_reference')
  2. ->setLabel(t('Contenu'))
  3. ->setSetting('target_type', 'node') -
  4. ->setSetting('handler_settings', [
  5. 'target_bundles' => [
  6. 'article' => 'article',
  7. 'page' => 'page',
  8. ]
  9. ])
  10. ->setDisplayConfigurable('form', TRUE)
  11. ->setDisplayConfigurable('view', TRUE);

 

Aller plus loin ?

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...