/** * Insere o registro enviado no banco de dados * * @author Hugo Ferreira da Silva * @link http://www.hufersil.com.br/ * @param array $values valores do formulario * @return array resultado da validacao */ private function insert($values) { $def = $this->obj->metadata()->getFields(); foreach ($def as $name => $prop) { if (!empty($prop['options']['foreign']) && empty($values[$name])) { $this->obj->setFieldValue($name, null); } else { if ($this->strip_slashes) { $this->obj->setFieldValue($name, stripslashes(@$values[$name])); } else { $this->obj->setFieldValue($name, @$values[$name]); } } } // limpamos as pk's que sao auto-incrementaveis $obj =& $this->obj; $pks = $obj->metadata()->getPrimaryKeys(); foreach ($pks as $name => $item) { if (!empty($item['options']['autoincrement'])) { $obj->{$item}['name'] = null; } } // atualiza as referencias MTM $def = $obj->metadata()->getRelations(FALSE); foreach ($def as $name => $prop) { if ($prop['type'] == Lumine_Metadata::MANY_TO_MANY) { $obj->removeAll($name); if (!empty($values[$name])) { foreach ($values[$name] as $id) { $obj->{$name}[] = $id; } } } } // $this->obj->populateFrom($values); $res = $this->obj->validate(); if ($res === true) { $this->obj->insert(); return true; } return $res; }
/** * Valida se as entradas nos campos estao de acordo com as regras de validacao * * @author Hugo Ferreira da Silva * @link http://www.hufersil.com.br * @param array $data Dados a serem validados * @return array Lista contendo os erros encontrados */ public function validate(array $data) { $this->obj->reset(); $this->obj->setFrom($data); return $this->obj->validate(); }