/** * Для сущности со связью RELATION_TYPE_TREE возвращает предка * * @param EntityORM $oEntity Объект сущности * * @return EntityORM|bool */ protected function _GetParentOfEntity($oEntity) { if (in_array(EntityORM::RELATION_TYPE_TREE, $oEntity->_getRelations())) { $aRelationsData = $oEntity->_getRelationsData(); if (array_key_exists('parent', $aRelationsData)) { $oParent = $aRelationsData['parent']; } else { $oParent = '%%NULL_PARENT%%'; if ($sPrimaryKey = $oEntity->_getPrimaryKey()) { if ($sParentId = $oEntity->getParentId()) { $oParent = $this->GetByFilter(array($sPrimaryKey => $sParentId), E::GetEntityName($oEntity)); } } } if (!is_null($oParent)) { $oEntity->setParent($oParent); return $oParent; } } return false; }