public function executeProcessConfigForm(sfWebRequest $request) { $data = $request->getGetParameters(); $config = new Config(); if ($data['cid'] == '-1') { // New Config $config->setModelId($data['mid']); $config->save(); foreach ($data as $field => $value) { if ($field != 'cid' && $field != 'mid') { $fv = new FieldValue(); $fv->setConfigId($config->getId()); $fv->setFieldId(intval($field)); $fv->setValue($value); //echo intval($field)."\n"; $fv->save(); } } } else { $config = ConfigPeer::retrieveByPK($data['cid']); foreach ($data as $field => $value) { if ($field != 'cid' && $field != 'mid') { $c = new Criteria(); $c->add(FieldValuePeer::FIELD_ID, intval($field)); $c->add(FieldValuePeer::CONFIG_ID, $config->getId()); $fv = FieldValuePeer::doSelectOne($c); if (!is_object($fv)) { $fv = new FieldValue(); $fv->setConfigId($config->getId()); $fv->setFieldId(intval($field)); } $fv->setValue($value); //echo intval($fv->getValue())."#"; //print_r($fv, FALSE); $fv->save(); } } } $this->res = $config->getId(); }