/** * Delete all references created by this relationship * * @param Relationship $relationship Forward relationship * @param object|object[] $value Forward relationship value * @param string $local_id ID of local entity * @internal param string $key Forward relationship key */ private function deleteRelationshipRefs(Relationship $relationship, $value, $local_id) { $ref = new Ref($relationship->getSource(), $local_id, $relationship->getName()); if (!is_array($value)) { $value = [$value]; } foreach ($value as $foreign_entity) { if (null !== $foreign_entity) { $foreign_id = $this->getEntityId($foreign_entity); $ref_key = $this->getKeyScheme()->getEntityRefKey($relationship->getTargetTable(), $foreign_id); $this->getDriver()->removeRef($ref_key, $ref); } } }
/** * Get the key for a sort index on a relationship * * @param Relationship $relationship Relationship * @param string $sort_field Property name on the inverse entity * @param string $id Local ID * @return string */ public function getSortIndexKey(Relationship $relationship, $sort_field, $id) { // srt:category-article:89726:title return static::SORT_NAMESPACE . $this->delimiter . $relationship->getSourceTable() . '-' . $relationship->getTargetTable() . $this->delimiter . $id . $this->delimiter . $relationship->getName() . $this->delimiter . $sort_field; }