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.

-~----------~----~----~----~------~----~------~--~---

Responder a