/** * Implements hook_entity_field_storage_info(). */ function {{ machine_name }}_entity_field_storage_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) { if (\Drupal::entityManager()->getStorage($entity_type->id()) instanceof DynamicallyFieldableEntityStorageInterface) { // Query by filtering on the ID as this is more efficient than filtering // on the entity_type property directly. $ids = \Drupal::entityQuery('field_storage_config') ->condition('id', $entity_type->id() . '.', 'STARTS_WITH') ->execute(); // Fetch all fields and key them by field name. $field_storages = FieldStorageConfig::loadMultiple($ids); $result = []; foreach ($field_storages as $field_storage) { $result[$field_storage->getName()] = $field_storage; } return $result; } }