Voici comment ajouter un basefield slug à un type d'entité client. La définition de cette propriété se trouvant dans la méthode baseFieldDefinitions de notre type d'entité :
function dashboard_update_9005() {
$entity_type_id = 'client'; // nom machine de notre type d'entité
$fields = ['slug']; // champ(s) à créer
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
\Drupal::entityTypeManager()->clearCachedDefinitions();
$entity_type = $definition_update_manager->getEntityType($entity_type_id);
foreach ($fields as $field) {
$fieldDefinition = $entity_type->getClass()::baseFieldDefinitions($entity_type)[$field];
$definition_update_manager->installFieldStorageDefinition($field, $entity_type_id, $entity_type_id, $fieldDefinition);
}
}
En adaptant la seconde ligne de la fonction, il est possible d'ajouter autant de propriétés que l'on souhaite à notre type d'entité.
Contenus en rapport
Voici comment supprimer le basefield « mon_champ_a_suppr » de mon type d'entité personnalisé « mon_type_entite ».
Ajouter un commentaire