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);
Ajouter un commentaire