field_purge_field_storage(FieldStorageConfigInterface $field_storage)
Purges a field record from the database.
This function assumes all fields for the field storage has already been purged, and should only be called by field_purge_batch().
Parameters
\Drupal\field\FieldStorageConfigInterface $field_storage: The field storage to purge.
Throws
Drupal\field\FieldException
Related topics
- Field API bulk data deletion
- Cleans up after Field API bulk deletion operations.
File
- core/modules/field/field.purge.inc, line 161
- Provides support for field data purge after mass deletion.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function field_purge_field_storage(FieldStorageConfigInterface $field_storage ) { $fields = entity_load_multiple_by_properties( 'field_config' , array ( 'field_storage_uuid' => $field_storage ->uuid(), 'include_deleted' => TRUE)); if ( count ( $fields ) > 0) { throw new FieldException(t( 'Attempt to purge a field storage @field_name that still has fields.' , array ( '@field_name' => $field_storage ->getName()))); } $state = \Drupal::state(); $deleted_storages = $state ->get( 'field.storage.deleted' ); unset( $deleted_storages [ $field_storage ->uuid()]); $state ->set( 'field.storage.deleted' , $deleted_storages ); // Notify the storage layer. \Drupal::entityManager()->getStorage( $field_storage ->getTargetEntityTypeId())->finalizePurge( $field_storage ); // Invoke external hooks after the cache is cleared for API consistency. \Drupal::moduleHandler()->invokeAll( 'field_purge_field_storage' , array ( $field_storage )); } |
Please login to continue.