protected function _applyGroupsForData(RM_Total_Object $object) { M('Db')->setCurrentConnection('storage'); $q = M('Db')->createQuery($object->tableName(), 'update'); M('Db')->setCurrentConnection('default'); $lastGroup = NULL; foreach ($object->other() as $id => $group) { if ($lastGroup != $group) { $detailLevel = $object->detailLevel(); $q->set()->reset(); do { $obGroup = M('ReportGroup')->loadById($group); $q->set($detailLevel->getFieldNameWithId(), $obGroup->reportId())->set($detailLevel->getFieldNameWithName(), $obGroup->name()); } while (!isNull($detailLevel = $detailLevel->getUpperLevel())); $lastGroup = $group; } $q->where()->reset(); $q->where($object->detailLevel()->getFieldNameWithId() . '=?', $id); $q->execute(); } }