예제 #1
0
 /**
  * @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);
     }
 }
예제 #2
0
 /**
  * @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;
         }
     }
 }