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
Pour faire un champ de base référence à un terme de taxonomie, on va utiliser le type "entity_reference", en lui passant évidement le nom du vocabulaire, (ici "option_types") :
Voila comment ajouter une propriétée faisant référence à un média sur un type d'entité :
Ajouter un commentaire