Same name and namespace in other branches
  1. 8.9.x core/modules/field/field.module \field_entity_field_storage_info()
  2. 9 core/modules/field/field.module \field_entity_field_storage_info()

Implements hook_entity_field_storage_info().

Related topics

File

core/modules/field/field.module, line 176
Attach custom data fields to Drupal entities.

Code

function field_entity_field_storage_info(EntityTypeInterface $entity_type) {
  if (\Drupal::entityTypeManager()
    ->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;
  }
}