/**
  * Обновление сущности в БД
  *
  * @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;
 }
Beispiel #2
0
 /**
  * Обновление сущности в БД
  *
  * @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;
 }