Si tienes una restricción de FK es responsabilidad tuya eliminar los
registros que referencian al registro que intentas eliminar antes de
poder eliminarlo. Por otro lado puedes poner 'dependent' => true en la
asociación que quieres que sea eliminada en forma recursiva.

La verdad es que si hubieras leído el manual con más atención no
estarías preguntando esto.

http://manual.cakephp.org/chapter/models

On 24 oct, 23:54, PRF! <[EMAIL PROTECTED]> wrote:
> 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 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