Entity data provides a simple API to add data to any entity.

Drupal 10, 11

Entity data service works similar to core's 'user.data' service. Except the we don't restrict it only to user entity. You can set data for any content entities.

The primary usage involves the getter/setter methods:

// Set custom data to entity.
\Drupal::service('entity.data')->set($module_name, $entity_id, $custom_data_name, $entity_type, $value);

// Get custom data for entity.
\Drupal::service('entity.data')->get($module_name, $entity_id, $custom_data_name, $entity_type);

// Delete custom data for entity
\Drupal::service('entity.data')->delete($module_name, $entity_id, $custom_data_name, $entity_type);

Drupal 7

It works similar to core's variable_set/get/del system. Except the data is associated with a entity and only loaded when that entity is loaded.

The primary usage involves the getter/setter methods:

entity_data_set($entity_type, $entity_id, $name, $value, $revision_id = 0, $language = LANGUAGE_NONE);

entity_data_get($entity_type, $entity_id, $name, $default = NULL, $revision_id = 0, $language = LANGUAGE_NONE);

entity_data_del($entity_type, $entity_id, $name, $revision_id = 0, $language = LANGUAGE_NONE);

In addition to using the getter/setter methods, entity_data is automatically attached on entity_load and saved on entity_insert/entity_update. The data can be accessed using following the format:
$entity->entity_data[$name]

This also means that entity data will export and import with the entity.

Sponsors

Project information

Releases