Hola muchachos..

he estado lidiando un resto con el modelo, ya me trague el cuento de
las convenciones y las referencias hasMany, hasOne, etc..

despues de todo eso me queda una gran duda:

¿que pasa con los foreign_key creados para las tablas en la base de
datos?, ¿son necesarios de todas formas?, ¿importa su nombre?

Estoy trabajando en una pequeña aplicacion que me ayude a comprender
mas el mundo de este framework y a pesar de que creo que el modelo y
los controladores estan bien a pesar de su simpleza me gustaria saber
que debo esperar de cake cuando   intento eliminar un registro de una
tabla con llave foranea (sin utilizar scaffold).

En mi ejemplo tengo una funcion delete en cierto controlador, que no
es mas que esto

                function delete($id)
                   {
                       if ($this->Category->del($id))
                       {
                           $this->flash('El registo con id: '.$id.' fue 
eliminado.',
'/categories');
                       }
                   }

entonces cuando voy eliminar efectivamente no puedo porque hay un FK
involucrado pero es mySQL quien devuelve el error, no cake, como me lo
esperaba.

"Warning: SQL Error: 1451: Cannot delete or update a parent row: a
foreign key constraint fails (`cuco/categories`, CONSTRAINT
`FK_GROUP_ID` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`)) in /
Users/PRF/Web/cuco/cake/libs/model/datasources/dbo_source.php on line
437"

para que cake valide las FK antes de hacer la query en mySQL ¿que debo
hacer?, ¿existe alguna funcion predefinida?, ¿es parte del controlador
(supongo)?


muchas gracias por la atencion!!


--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
 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