protected function CiviEntityStorage::doDeleteFieldItems in CiviCRM Entity 8.3
Deletes entity field values from the storage.
Parameters
\Drupal\Core\Entity\ContentEntityInterface[] $entities: An array of entity objects to be deleted.
Overrides SqlContentEntityStorage::doDeleteFieldItems
2 calls to CiviEntityStorage::doDeleteFieldItems()
- CiviEntityStorage::civiPostDelete in src/
CiviEntityStorage.php - Allows CiviCRM hook to invoke delete.
- CiviEntityStorage::doDelete in src/
CiviEntityStorage.php - Performs storage-specific entity deletion.
File
- src/
CiviEntityStorage.php, line 112
Class
- CiviEntityStorage
- Defines entity class for external CiviCRM entities.
Namespace
Drupal\civicrm_entityCode
protected function doDeleteFieldItems($entities) {
$table_mapping = $this
->getTableMapping();
foreach ($entities as $entity) {
foreach ($this
->getEntityFieldManager()
->getFieldDefinitions($entity
->getEntityTypeId(), $entity
->bundle()) as $field_definition) {
$storage_definition = $field_definition
->getFieldStorageDefinition();
if (!$table_mapping
->requiresDedicatedTableStorage($storage_definition)) {
continue;
}
$table_name = $table_mapping
->getDedicatedDataTableName($storage_definition);
$this->database
->delete($table_name)
->condition('entity_id', $entity
->id())
->execute();
}
}
}