Hola! Tengo dos tablas: Proyectos y Directores relacionadas asi en el modelo: -Director hasMany Proyecto -Proyecto belongsTo Director
Al añadir un nuevo proyecto tengo el campo Director que es un select simple donde puedo elegir un director entre todos los que tengo en la BD. Al crear un nuevo proyecto puedo dejar el campo director vacio o seleccionar uno, y en ambos casos se me guarda correctamente. El problema me surge al editar un proyecto, ya que si dejo el campo director vacio no se actualiza el proyecto y me surge este error: Warning (512): SQL Error: 1452: Cannot add or update a child row: a foreign key constraint fails (`BD/proyectos`, CONSTRAINT `proyectos_ibfk_3` FOREIGN KEY (`director_id`) REFERENCES `directors` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) [CORE/cake/libs/model/ datasources/dbo_source.php, line 440] Si al editarlo si introduzco un director se guarda correctamente. Las funciones de controlador proyectos son estas: function add() { if (!empty($this->data)) { $this->cleanUpFields(); $this->Proyecto->create(); if ($this->Proyecto->save($this->data)) { $this->Session->setFlash(__('El proyecto se ha guardado con éxito', true)); $this->redirect(array('action'=>'index'), null, true); } else { $this->Session->setFlash(__('El proyecto no se ha podido guardar. Por favor, inténtelo de nuevo.', true)); } } $directors = $this->Proyecto->Director->generateList(); $this->set(compact('directors')); } function edit($id = null) { if (!$id && empty($this->data)) { $this->Session->setFlash(__('Proyecto no válido', true)); $this->redirect(array('action'=>'index'), null, true); } if (!empty($this->data)) { $this->cleanUpFields(); if ($this->Proyecto->save($this->data)) { $this->Session->setFlash(__('Proyecto modificado con éxito', true)); $this->redirect(array('action'=>'index'), null, true); } else { $this->Session->setFlash(__('El proyecto no se ha modificado. Por favor, inténtelo de nuevo.', true)); } } if (empty($this->data)) { $this->data = $this->Proyecto->read(null, $id); } $directors = $this->Proyecto->Director- >generateList(); $this->set(compact('directors')); } ¿Cómo puedo solucionarlo? ¿Por qué solo me aparece el error al editar un proyecto y no al añadir uno nuevo? Espero que me podais ayudar por que no encuentro una solución Gracias de antemano y un saludo --~--~---------~--~----~------------~-------~--~----~ 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. -~----------~----~----~----~------~----~------~--~---