/** * Returns the inverse equivalent of a given relationship * * @param Relationship $relationship * @return Relationship */ public function invertRelationship(Relationship $relationship) { if (!$relationship->getInversedBy()) { throw new InvalidArgumentException('Relationship "' . $relationship->getName() . '" is not inversed'); } $metadata = $this->getMapper()->getEntityMetadata($relationship->getTarget()); $inverse = $metadata->getRelationshipByName($relationship->getInversedBy()); if (!$inverse) { throw new InvalidEntityException('Relationship "' . $relationship->getName() . '" inverse side "' . $relationship->getInversedBy() . '" cannot be not found'); } return $inverse; }
/** * Get the relationship target table name * * @param Relationship $relationship * @return string */ protected function getTargetTable(Relationship $relationship) { return $this->getTableForClass($relationship->getTarget()); }