/** * Обновление сущности в БД * * @param EntityORM $oEntity Объект сущности * @return EntityORM|bool */ protected function _UpdateEntity($oEntity) { $res = $this->oMapperORM->UpdateEntity($oEntity); if ($res === 0 or $res) { // запись не изменилась, либо изменилась // Обновление связей many_to_many foreach ($oEntity->_getRelations() as $sRelName => $aRelation) { if ($aRelation[0] == EntityORM::RELATION_TYPE_MANY_TO_MANY && $oEntity->{$sRelName}->isUpdated()) { $this->_updateManyToManyRelation($oEntity, $sRelName); $oEntity->resetRelationsData($sRelName); } } // сбрасываем кеш $sEntity = $this->Plugin_GetRootDelegater('entity', get_class($oEntity)); $this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array($sEntity . '_save')); return $oEntity; } return false; }
/** * Обновление сущности в БД * * @param EntityORM $oEntity Объект сущности * * @return EntityORM|bool */ protected function _UpdateEntity($oEntity) { $res = $this->oMapper->UpdateEntity($oEntity); if ($res === 0 || $res) { // запись не изменилась, либо изменилась // Обновление связей many_to_many $aRelationsData = $oEntity->_getRelationsData(); foreach ($oEntity->_getRelations() as $sRelName => $aRelation) { if ($aRelation[0] == EntityORM::RELATION_TYPE_MANY_TO_MANY && $oEntity->{$sRelName}->isUpdated()) { // Сброс кэша по связям E::ModuleCache()->Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('m2m_' . $aRelation[2] . $aRelation[4] . $oEntity->_getPrimaryKeyValue())); $this->_updateManyToManySet($aRelation, $oEntity->{$sRelName}->getCollection(), $oEntity->getProp($oEntity->_getPrimaryKey())); $oEntity->resetRelationsData($sRelName); } } // сбрасываем кеш $sEntity = E::ModulePlugin()->GetRootDelegater('entity', get_class($oEntity)); E::ModuleCache()->Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array($sEntity . '_save')); return $oEntity; } return false; }