Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/01/2009, 16:45
CAT Shannon
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: [CakePHP] hasMany, belongsTo

A la primera parte te digo que lo de usar create es la forma de trabajar de CakePHP. En la documentación dice:
Cita:
Initializes the model for writing a new record, loading the default values for those fields that are not defined in $data. Especially helpful for saving data in loops.
Creo que es bastante claro. Después de hacer un save, si quieres guardar otro registro diferente tienes que llamar a create.
No estoy muy seguro de esto pero creo que es porque después de hacer save en Modelo->id se guarda el ID, ya sea update o insert. Al intentar hacer otro save, CakePHP piensa que es sobre el registro anterior, porque Modelo->id tiene un valor.

Sobre la segunda parte. Cuando haces un save pasandole unos datos, si en esos datos hay un ID definido y existente entonces CakePHP hace un update sobre el registro de la tabla. Si no se le pasa un ID o no existe previamente en la tabla, entonces hace un insert.
Así pues, respondiendo a tu pregunta, te lo tendrás que currar para diferenciar cuando existe y cuando no.
Lo mejor, si el bucle tiene muchos elementos y de cara a evitar hacer tantas consultas, es que intentes pasarle, además del nombre del equipo, el ID si lo tuviera. Así te ahorrarías los find.

CakePHP automatiza muchos procesos pero no hace milagros...