public function CiviEntityStorage::onFieldStorageDefinitionDelete in CiviCRM Entity 8.3
Reacts to the deletion of a field storage definition.
Parameters
\Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition: The field being deleted.
Overrides SqlContentEntityStorage::onFieldStorageDefinitionDelete
File
- src/
CiviEntityStorage.php, line 353
Class
- CiviEntityStorage
- Defines entity class for external CiviCRM entities.
Namespace
Drupal\civicrm_entityCode
public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $storage_definition) {
$table_mapping = $this
->getTableMapping($this
->getEntityFieldManager()
->getActiveFieldStorageDefinitions($this->entityType
->id()));
if ($storage_definition instanceof FieldStorageConfigInterface && $table_mapping
->requiresDedicatedTableStorage($storage_definition)) {
// Mark all data associated with the field for deletion.
$table = $table_mapping
->getDedicatedDataTableName($storage_definition);
$this->database
->update($table)
->fields([
'deleted' => 1,
])
->execute();
}
// Update the field schema.
$this
->wrapSchemaException(function () use ($storage_definition) {
$this
->getStorageSchema()
->onFieldStorageDefinitionDelete($storage_definition);
});
}