Hola, he hecho un formulario sobre una lista de contactos que pertenecen a un staff editorial de una revista y los datos del contacto están repartidos en dos tablas. Ahora bien, cuando submiteo el form con la tabla que relaciona los contactos con las revistas no tengo ningun problema, pero con la tabla que pertenece específicamente a los contactos sí! No me deja hacer el update()
Esto es así:
public function validar($id){
$persona1 = $this->Persona->find_first($id);
$persona1->apellido = $_REQUEST['apellido'];
$persona1->apellido = $_REQUEST['nombre'];
$persona1->update();
$persona2 = $this->Personaxrevista->find_first("persona_id = '$id'");
$persona2->relacion = $_REQUEST['relacion'];
$persona2->notas = $_REQUEST['notas'];
$persona2->capacitacion_id = $_REQUEST['capacitacion_id'];
$persona2->update();
}
Con $persona2 no tengo problemas y me actualiza el registro en la tabla pero con $persona1 obtengo el siguiente mensaje: "No se puede actualizar porque el registro no existe". He hecho pruebas del tipo echo $persona1->apellido y obtengo el apellido del contacto. Qué podrá ser? Gracias desde ya.
Comentarios
$usuario = $this->Usuarios->find($id);
$usuario->save_from_request();
Es más simple y a mi me funciona bien.
Un saludo
Gracias wiggly pero hice la prueba y nada ahora obtengo el mensaje: KumbiaDBException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES )' at line 1 al ejecutar
Un saludo
el save(), si el registro existe lo actualiza, sino lo crea.
suerte!!!
save_from_request() tiene que "buscar" en REQUEST las variables que recibe, por lo que si lo haces explicitamente, algo que ahorras (supongo)
Un saludo
Por casualidad, ahora estoy armando un form de ingreso de personas y quiero que antes de ingresar los datos pase por una validación como por ejemplo que no dejen campos vacíos, cómo hago? Uso before_create? Pero cómo? y en dónde lo inserto? Gracias
Puedes utilizar before o success. En el libro de KUMBIA hay algun ejemplo.
Tambien si en la base de datos tienes puesto que no puede ser nulo, te lo valida automaticamente.
Pero mejor realizarlo primero en cliente, asi quitas carga al servidor.
Un saludo