/** * @param SFM_RelationSide $side * @param SFM_Entity $entity * @param $complexValue * @return mixed */ public function setByEntity(SFM_RelationSide $side, SFM_Entity $entity, $complexValue) { $inverseSide = $this->getInverseSide($side); $entity->setComplexByRelationOnly($side->complex, $complexValue); if (!$side->isOwner) { if ($complexValue instanceof SFM_Entity) { $complexValue->setComplexByRelationOnly($inverseSide->complex, $entity); } elseif ($complexValue instanceof SFM_List) { /**@var $complexEntity SFM_Entity */ foreach ($complexValue as $complexEntity) { $complexEntity->setComplexByRelationOnly($inverseSide->complex, $entity); } } } return $complexValue; }