/** * @param string $newIdentifier * @param string $oldIdentifier * @param Record $owningRecord */ public function updateOwningIdentifier($newIdentifier, $oldIdentifier, Record $owningRecord) { $relationName = $this->relation->getReferencedAlias(); if (!$this->relation->hasReferenceLoadedFor($owningRecord, $relationName)) { return; } $referencedRecord = $this->relation->getReferenceFor($owningRecord, $relationName); if ($referencedRecord) { $refId = $referencedRecord->getInternalId(); $this->updateReferenceInMap($refId, $newIdentifier, $oldIdentifier); } }
/** * @param string $newIdentifier * @param string $oldIdentifier * @param Record $owningRecord */ public function updateOwningIdentifier($newIdentifier, $oldIdentifier, Record $owningRecord) { $relationName = $this->relation->getReferencedAlias(); if (!$this->relation->hasReferenceLoadedFor($owningRecord, $relationName)) { return; } $referencedRecord = $this->relation->getReferenceFor($owningRecord, $relationName); if ($referencedRecord) { $refId = $referencedRecord->getInternalId(); if ($this->relation->isOneToMany()) { $pos = array_search($oldIdentifier, $this->references[$refId], true); if ($pos !== false) { $this->references[$refId][$pos] = $newIdentifier; } } else { $this->references[$refId] = $newIdentifier; } } }