Acá el problema es claro. Tienes tu fecha dividida en tres campos, debes de hacer algo como lo siguiente para que funcione:
$this->data["Tarea"]["fecha"] = date("Y-m-d H:i:s",mktime(0,0,0, $this->data["Tarea"]["fecha_month"], $this->data["Tarea"]["fecha_day"], $this->data["Tarea"]["fecha_year"])); Por que de lo contrario cake espera qeu tengas un campo numerico para cada elemento de la fecha, de esta forma podrás guardarlo como si fuera una fecha de time stamp >=) Un saludo El día 12/09/07, Pablo López <[EMAIL PROTECTED]> escribió: > > Hola lista, > > Tengo un problema a la hora de salvar fechas con la version 1.2 de > CakePHP. (uso PHP 5, aunque no creo que tenga que ver) > > El problema reside en que los datos que se pasan por POST al controlador > quedan de la siguiente manera: > > /* DUMP $this->data */ > Array > ( > [Tarea] => Array > ( > [id] => 3 > [fecha_month] => 09 > [fecha_day] => 02 > [fecha_year] => 2007 > ... > ) > ) > /* END DUMP */ > > Cuando intento salvar los datos con $this->Tarea->save($this->data['Tarea']) > almacena todo correctamente salvo la fecha que queda como 0000-00-00 > > El código es el siguiente --> > > /* INICIO DE CODIGO */ > > /* SQL */ > CREATE TABLE `tareas` > { > ... > `fecha` DATE NOT NULL, > ... > } > > /* Vista (/tareas/editar) */ > <form action="<?=$html->url('/tareas/nueva')?>" method="POST"> > <?=$form->input('Tarea.fecha')?> > <?=$form->input('Tarea.nombre')?> > <?=$form->text('Tarea.descripcion')?> > > <?=$form->label('Hecha')?> > <?=$form->checkbox('Tarea.hecha')?> > > <?=$form->submit('Guardar')?> > <? // $form->button('Cancelar','button')?> > </form> > > /* Controlador (tareas) */ > > function editar($id = "") > { > if (! empty($this->data)) > { > if ($this->Tarea->save($this->data['Tarea'])) > { > # ToDo: NO SALVA FECHA (bug?) > $this->flash('La tarea ha sido salvada','/tareas'); > die(); > } > else > { > $this->flash('ERROR: La tarea no pudo ser > salvada','/tareas'); > die(); > } > } > > // PREPARACION DE PARAMETROS > $this->parseInteger(&$id); > // ERRORES > $id == "" ? $this->flash('Tienes que especificar una tarea a > editar','/tareas/lista') : null ; > > // PREPARACION DE DATOS > $this->Tarea->id = $id; > $this->data = $this->Tarea->read(); > > // RETORNO DE DATOS > } > > /* FIN DE CODIGO */ > > Gracias por vuestro tiempo, > > Pablo López Torres > <[EMAIL PROTECTED]> > > > > --~--~---------~--~----~------------~-------~--~----~ Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos de Google. Si quieres publicar en este grupo, envía un mensaje de correo electrónico a CakePHP-es@googlegroups.com Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED] Para obtener más opciones, visita este grupo en http://groups.google.com/group/CakePHP-es?hl=es. -~----------~----~----~----~------~----~------~--~---