Es que lo que quiero NO es que sea dependiente, por el contrario, lo que busco es que si un registro posee una llave foranea es porque este no puede ser eliminado ya que ese valor es usado por otra tabla, entonces al intentar eliminar quiero sacar un mensaje que diga "No se puede borrar este registro porque esta siendo utilizado por este otro"., ¿se entiende? vendria a ser el ejemplo contrario a lo que sale en el manual, tomando ese mismo ejemplo, de usuarios y perfiles, hacen un modelo que si se borra el usuario se borrara su perfil, pero ¿que pasa si se borra el perfil?, un usuario no debe quedar sin perfil, por lo que es justamente esa validacion la que pretendo hacer.
Entonces, esa logica, que debiera ir en el controlador, ¿se debe definir?, ¿existe alguna validacion preexistente por utilizar? Saludos y gracias! On 25 oct, 08:32, dardosordi <[EMAIL PROTECTED]> wrote: > 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 [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. -~----------~----~----~----~------~----~------~--~---
