public static function getManyToOneMembersAndValues($instance) { $ret = array(); $class = get_class($instance); $members = Reflexion::getMembersWithAnnotation($class, "ManyToOne"); foreach ($members as $member) { $annot = OrmUtils::getJoinColumn($class, $member->getName()); $memberAccessor = "get" . ucfirst($member->getName()); if (method_exists($instance, $memberAccessor)) { $memberInstance = $instance->{$memberAccessor}(); if (isset($memberInstance)) { $keyValues = OrmUtils::getKeyFieldsAndValues($memberInstance); if (sizeof($keyValues) > 0) { $ret[$annot->name] = reset($keyValues); } } } } return $ret; }