Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Entity/EntityStorageBase.php \Drupal\Core\Entity\EntityStorageBase::save()
  2. 9 core/lib/Drupal/Core/Entity/EntityStorageBase.php \Drupal\Core\Entity\EntityStorageBase::save()

Saves the entity permanently.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity to save.

Return value

int|null SAVED_NEW or SAVED_UPDATED is returned depending on the operation performed.

Throws

\Drupal\Core\Entity\EntityStorageException In case of failures, an exception is thrown.

Overrides EntityStorageInterface::save

3 calls to EntityStorageBase::save()
ConfigEntityStorage::save in core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php
Implements Drupal\Core\Entity\EntityStorageInterface::save().
KeyValueEntityStorage::save in core/lib/Drupal/Core/Entity/KeyValueStore/KeyValueEntityStorage.php
Saves the entity permanently.
SqlContentEntityStorage::save in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Saves the entity permanently.
4 methods override EntityStorageBase::save()
ConfigEntityStorage::save in core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php
Implements Drupal\Core\Entity\EntityStorageInterface::save().
ContentEntityNullStorage::save in core/lib/Drupal/Core/Entity/ContentEntityNullStorage.php
Saves the entity permanently.
KeyValueEntityStorage::save in core/lib/Drupal/Core/Entity/KeyValueStore/KeyValueEntityStorage.php
Saves the entity permanently.
SqlContentEntityStorage::save in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Saves the entity permanently.

File

core/lib/Drupal/Core/Entity/EntityStorageBase.php, line 478

Class

EntityStorageBase
A base entity storage class.

Namespace

Drupal\Core\Entity

Code

public function save(EntityInterface $entity) {

  // Track if this entity is new.
  $is_new = $entity
    ->isNew();

  // Execute presave logic and invoke the related hooks.
  $id = $this
    ->doPreSave($entity);

  // Perform the save and reset the static cache for the changed entity.
  $return = $this
    ->doSave($id, $entity);

  // Execute post save logic and invoke the related hooks.
  $this
    ->doPostSave($entity, !$is_new);
  return $return;
}