You are here

function field_purge_field in Drupal 7

Same name and namespace in other branches
  1. 8 core/modules/field/field.purge.inc \field_purge_field()
  2. 9 core/modules/field/field.purge.inc \field_purge_field()

Purges a field record from the database.

This function assumes all instances for the field has already been purged, and should only be called by field_purge_batch().

Parameters

$field: The field record to purge.

Related topics

1 call to field_purge_field()
field_purge_batch in modules/field/field.crud.inc
Purges a batch of deleted Field API data, instances, or fields.

File

modules/field/field.crud.inc, line 988
Field CRUD API, handling field and field instance creation and deletion.

Code

function field_purge_field($field) {
  $instances = field_read_instances(array(
    'field_id' => $field['id'],
  ), array(
    'include_deleted' => 1,
  ));
  if (count($instances) > 0) {
    throw new FieldException(t('Attempt to purge a field @field_name that still has instances.', array(
      '@field_name' => $field['field_name'],
    )));
  }
  db_delete('field_config')
    ->condition('id', $field['id'])
    ->execute();

  // Notify the storage engine.
  module_invoke($field['storage']['module'], 'field_storage_purge_field', $field);

  // Clear the cache.
  field_info_cache_clear();

  // Invoke external hooks after the cache is cleared for API consistency.
  module_invoke_all('field_purge_field', $field);
}