Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

CakePHP borrado recursivo

Estas en el tema de CakePHP borrado recursivo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo tres modelos: User, Group y Note User belongsTo Group User hasMany Note Note belongsTo User Group hasMany User (todas estas asociaciones estan definidas en ...
  #1 (permalink)  
Antiguo 07/08/2012, 16:41
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
CakePHP borrado recursivo

Tengo tres modelos: User, Group y Note
User belongsTo Group
User hasMany Note
Note belongsTo User
Group hasMany User
(todas estas asociaciones estan definidas en los modelos correspondientes)

Cuando creo una nota tengo que decir a que usuario pertenece. Todo bien
El problema es que cuando borro un usuario quiero que se borren las notas que pertenecen a dicho usuario.

Por lo que lei en el cookbook pongo en user.php:
var $hasMany=array('Note'=>array('className'=>'Note',
'dependent'=>'true'
)
);
y cuando llamo a la accion para borrar en users_controller lo hago asi:
User->delete($id,true) (tambien probe User->delete($id,'true') no tira error con o sin comillas)

Pero borro un usuario y sus notas asociadas no son borradas!!!
Que me estoy pasando por alto?

Muchas gracias
  #2 (permalink)  
Antiguo 07/08/2012, 19:27
 
Fecha de Ingreso: julio-2012
Mensajes: 30
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: CakePHP borrado recursivo

En el modelo User, te faltó en la declaración de la variable $hasMany el foreignKey = 'user_id' .

Al realizar el delete puede hacerlo así:

Código PHP:
$this->User->id $id;
$this->User->delete(); 
  #3 (permalink)  
Antiguo 08/08/2012, 12:14
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: CakePHP borrado recursivo

Sigue sin andar!
En cookbook dice: " El valor por defecto para esta clave es el nombre en singular del otro modelo (separado por guiones de subrayado), con el sufijo '_id'." Estoy siguiendo las convenciones asi que no deberia hacer falta.
Igual puse como dice usted, e incluso cambie la forma de llamar a delete con la forma que propone y siguen sin borrarse las notas asociadas al usuario cuando éste ultimo es borrado.
Igual, muchas gracias!
  #4 (permalink)  
Antiguo 09/08/2012, 16:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: CakePHP borrado recursivo

En la definicion de dependent, quitale las comillas a true. CakePHP hace el chequeo con ===, por lo que no basta que sea true, deben ser del mismo tipo.

http://api.cakephp.org/view_source/model#line-2408

Última edición por Ronruby; 09/08/2012 a las 16:55

Etiquetas: borrado, cakephp, class, recursivo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:13.