: * nid: * - * value: 2 * ... */ class IdPostRowSave implements EventSubscriberInterface { /** * {@inheritdoc} */ public static function getSubscribedEvents() { $events = [ MigrateEvents::POST_ROW_SAVE => 'postRowSave', ]; return $events; } /** * Callback for POST_ROW_SAVE. * * @param \Drupal\migrate\Event\MigratePostRowSaveEvent $event * The event instance. */ public function postRowSave(MigratePostRowSaveEvent $event) { $row = $event->getRow(); $idValues = $row->getSourceIdValues(); foreach ($idValues as $idName => $idValue) { $current = $idValue; while (is_array($current)) { $current = current($current); } // Unavailable because source is frozen at this point. // $row->setSourceProperty($idName, $current); // So let's use brute force. NestedArray::setValue($row->getSource(), explode(Row::PROPERTY_SEPARATOR, $idName), $current, TRUE); } } }