/** * {@inheritdoc} */ public static function preDelete(EntityStorageInterface $storage, array $fields) { $state = \Drupal::state(); parent::preDelete($storage, $fields); // Keep the field definitions in the state storage so we can use them // later during field_purge_batch(). $deleted_fields = $state->get('field.field.deleted') ?: array(); foreach ($fields as $field) { if (!$field->deleted) { $config = $field->toArray(); $config['deleted'] = TRUE; $config['field_storage_uuid'] = $field->getFieldStorageDefinition()->uuid(); $deleted_fields[$field->uuid()] = $config; } } $state->set('field.field.deleted', $deleted_fields); }