/** * Для сущности со связью RELATION_TYPE_TREE возвращает список всех предков * * @param EntityORM $oEntity Объект сущности * @return array */ protected function _GetAncestorsOfEntity($oEntity) { if ($oEntity->_isUsedRelationType(EntityORM::RELATION_TYPE_TREE)) { $aRelationsData = $oEntity->_getRelationsData(); if (array_key_exists('ancestors', $aRelationsData)) { $aAncestors = $aRelationsData['ancestors']; } else { $aAncestors = array(); $oEntityParent = $oEntity->getParent(); while (is_object($oEntityParent)) { $aAncestors[] = $oEntityParent; $oEntityParent = $oEntityParent->getParent(); } } if (is_array($aAncestors)) { $oEntity->setAncestors($aAncestors); return $aAncestors; } } return false; }