You are here

protected function SqlContentEntityStorage::deleteFromDedicatedTables in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php \Drupal\Core\Entity\Sql\SqlContentEntityStorage::deleteFromDedicatedTables()

Deletes values of fields in dedicated tables for all revisions.

Parameters

\Drupal\Core\Entity\ContentEntityInterface $entity: The entity.

1 call to SqlContentEntityStorage::deleteFromDedicatedTables()
SqlContentEntityStorage::doDeleteFieldItems in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Deletes entity field values from the storage.

File

core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php, line 1280
Contains \Drupal\Core\Entity\Sql\SqlContentEntityStorage.

Class

SqlContentEntityStorage
A content entity database storage implementation.

Namespace

Drupal\Core\Entity\Sql

Code

protected function deleteFromDedicatedTables(ContentEntityInterface $entity) {
  $table_mapping = $this
    ->getTableMapping();
  foreach ($this->entityManager
    ->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);
    $revision_name = $table_mapping
      ->getDedicatedRevisionTableName($storage_definition);
    $this->database
      ->delete($table_name)
      ->condition('entity_id', $entity
      ->id())
      ->execute();
    if ($this->entityType
      ->isRevisionable()) {
      $this->database
        ->delete($revision_name)
        ->condition('entity_id', $entity
        ->id())
        ->execute();
    }
  }
}