Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. EntityRevision.php

function EntityRevision::getEntity

Gets the entity.

Parameters

\Drupal\migrate\Row $row: The row object.

array $old_destination_id_values: The old destination IDs.

Return value

\Drupal\Core\Entity\EntityInterface|false The entity or false if it can not be created.

Overrides Entity::getEntity

File

core/modules/migrate/src/Plugin/migrate/destination/EntityRevision.php, line 137

Class

EntityRevision
Provides entity revision destination plugin.

Namespace

Drupal\migrate\Plugin\migrate\destination

Code

protected function getEntity(Row $row, array $old_destination_id_values) {
    $revision_id = $old_destination_id_values ? reset($old_destination_id_values) : $row->getDestinationProperty($this->getKey('revision'));
    $entity = NULL;
    if (!empty($revision_id)) {
        
        /** @var \Drupal\Core\Entity\RevisionableStorageInterface $storage */
        $storage = $this->storage;
        if ($entity = $storage->loadRevision($revision_id)) {
            $entity->setNewRevision(FALSE);
        }
    }
    if ($entity === NULL) {
        $entity_id = $row->getDestinationProperty($this->getKey('id'));
        $entity = $this->storage
            ->load($entity_id);
        // If we fail to load the original entity something is wrong and we need
        // to return immediately.
        if (!$entity) {
            return FALSE;
        }
        $entity->enforceIsNew(FALSE);
        $entity->setNewRevision(TRUE);
    }
    // We need to update the entity, so that the destination row IDs are
    // correct.
    $entity = $this->updateEntity($entity, $row);
    $entity->isDefaultRevision(FALSE);
    return $entity;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal