예제 #1
0
 /**
  * Unlink the field mapping of the referenced record for the old owning record
  *
  * @param  Record $referencedRecord
  */
 private function unlinkFieldMappingForOldOwningRecord(Record $referencedRecord)
 {
     if (!$this->relation->isOneToOne()) {
         return;
     }
     $refId = $referencedRecord->getInternalId();
     if (!$this->isReferenced($refId)) {
         return;
     }
     $oldOwningId = $this->getOwning($refId);
     $repositoryOwningSide = $this->getRefRepository($referencedRecord, $this->relation->getOwningAlias());
     if ($repositoryOwningSide->hasByInternalId($oldOwningId)) {
         $owningField = $this->relation->getOwningField();
         $oldOwningRecord = $repositoryOwningSide->getByInternalId($oldOwningId);
         $oldOwningRecord->set($owningField, null);
         $this->unsetFieldMapping($oldOwningRecord->getOid());
     }
 }