function EntityConfigBase::import
Same name in other branches
- 8.9.x core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()
- 10 core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()
- 11.x core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()
Overrides MigrateDestinationInterface::import
4 calls to EntityConfigBase::import()
- EntityBlock::import in core/
modules/ block/ src/ Plugin/ migrate/ destination/ EntityBlock.php - Import the row.
- EntityCommentType::import in core/
modules/ comment/ src/ Plugin/ migrate/ destination/ EntityCommentType.php - Import the row.
- EntityNodeType::import in core/
modules/ node/ src/ Plugin/ migrate/ destination/ EntityNodeType.php - Import the row.
- EntitySearchPage::import in core/
modules/ search/ src/ Plugin/ migrate/ destination/ EntitySearchPage.php - Import the row.
5 methods override EntityConfigBase::import()
- EntityBlock::import in core/
modules/ block/ src/ Plugin/ migrate/ destination/ EntityBlock.php - Import the row.
- EntityCommentType::import in core/
modules/ comment/ src/ Plugin/ migrate/ destination/ EntityCommentType.php - Import the row.
- EntityImageStyle::import in core/
modules/ image/ src/ Plugin/ migrate/ destination/ EntityImageStyle.php - Import the row.
- EntityNodeType::import in core/
modules/ node/ src/ Plugin/ migrate/ destination/ EntityNodeType.php - Import the row.
- EntitySearchPage::import in core/
modules/ search/ src/ Plugin/ migrate/ destination/ EntitySearchPage.php - Import the row.
File
-
core/
modules/ migrate/ src/ Plugin/ migrate/ destination/ EntityConfigBase.php, line 127
Class
- EntityConfigBase
- Base destination class for importing configuration entities.
Namespace
Drupal\migrate\Plugin\migrate\destinationCode
public function import(Row $row, array $old_destination_id_values = []) {
if ($row->isStub()) {
throw new MigrateException('Config entities can not be stubbed.');
}
$this->rollbackAction = MigrateIdMapInterface::ROLLBACK_DELETE;
$ids = $this->getIds();
$id_key = $this->getKey('id');
if (count($ids) > 1) {
// Ids is keyed by the key name so grab the keys.
$id_keys = array_keys($ids);
if (!$row->getDestinationProperty($id_key)) {
// Set the ID into the destination in for form "val1.val2.val3".
$row->setDestinationProperty($id_key, $this->generateId($row, $id_keys));
}
}
$entity = $this->getEntity($row, $old_destination_id_values);
// Translations are already saved in updateEntity by configuration override.
if (!$this->isTranslationDestination()) {
$entity->save();
}
if (count($ids) > 1) {
// This can only be a config entity, content entities have their ID key
// and that's it.
$return = [];
foreach ($id_keys as $id_key) {
if ($this->isTranslationDestination() && $id_key == 'langcode') {
// Config entities do not have a language property, get the language
// code from the destination.
$return[] = $row->getDestinationProperty($id_key);
}
else {
$return[] = $entity->get($id_key);
}
}
return $return;
}
return [
$entity->id(),
];
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.