Esta bien que hagas esa logica en el modelo, sería lo correcto.

Simplemente no llames a  $this->create();
Y puedes asegurarte que sea un update haciendo $this->id = $id;

2008/4/15 yuyul <[EMAIL PROTECTED]>:
>
>  Me alegro que al final hayas encontrado el problema.
>
>  Saludos.
>
>  On 15 abr, 22:43, "Miguel Michelsongs" <[EMAIL PROTECTED]>
>  wrote:
>
> > Hola Julián , tienes razón , por desgracia asi es, casi todos los ejemplos
>  > que hay por ahi hacen las operaciones de modelo en el controlador, lo que 
> no
>  > es una buena práctica en todos los casos. Ya que esto abulta, en código,
>  > nuestros controladores, siendo que estos solo deberían servir para pasar
>  > datos de nuestros modelos a las vistas.
>  >
>  > finalmente encontré el problema , estaba en que en que en la funcion
>  > beforeSave() del modelo no estaba devolviendo un valor true.
>  > y puse return true al final de la funcion y ahora funciona bien.
>  >
>  > function beforeSave(){
>  >
>  >     if (empty($this->id)){
>  >      //creando no actualizando
>  >    $this->make_activation_code();
>  >    $this->encrypt_password();
>  >
>  >     }else {
>  >
>  >    //actualizando
>  >     }
>  >     return true;
>  >
>  > }
>  >
>  > un saludo
>  >
>  > 2008/4/15 yuyul <[EMAIL PROTECTED]>:
>
>
> >
>  >
>  >
>  >
>  >
>  > > En la mayoría de ejemplos que hay por ahi, siempre se hace en el
>  > > controlador.
>  >
>  > > On 15 abr, 21:20, "Miguel Michelsongs" <[EMAIL PROTECTED]>
>  > > wrote:
>  > > > Hola Julián!
>  >
>  > > > puede ser o que dices , pero considero buena práctica hacer esa
>  > > operación en
>  > > > el modelo.
>  >
>  > > > Saludos
>  >
>  > > > 2008/4/15 yuyul <[EMAIL PROTECTED]>:
>  >
>  > > > > Buenas, porque en lugar de utilizar la función en el modelo, lo haces
>  > > > > en el controlador.
>  >
>  > > > > On 15 abr, 20:43, "Miguel Michelsongs" <[EMAIL PROTECTED]>
>  > > > > wrote:
>  > > > > > Hola Bakers como estan
>  >
>  > > > > > al grano, tengo un problema con la generacion de un update desde el
>  > > > > modelo,
>  > > > > > no se que estoy haciendo mal, no me funciona, y cuando funciona me
>  > > > > genera
>  > > > > > otro registro no no me edita el que yo quiero
>  >
>  > > > > > tengo este metodo de modelo en el modelo User.php
>  >
>  > > > > > function activate($id){
>  >
>  > > > > >      $this->data['User']['id'] = $id;
>  > > > > >     $this->data['User']['activated_at'] = date('Y-m-d h:i:s');
>  > > > > >     $this->data['User']['activation_code'] = null;
>  > > > > >      $this->data['User']['active'] = 1;
>  > > > > >     $this->create();
>  > > > > >     return $this->save($this->data);
>  >
>  > > > > >   }
>  >
>  > > > > > mi idea es pasarle el id del registro para que se haga un update.,
>  > > pero
>  > > > > solo
>  > > > > > me crea un nuevo registro
>  >
>  > > > > > luego en el controller users tengo la siguiente accion
>  >
>  > > > > > function activate($id = null){
>  >
>  > > > > >             if($this->User->activate(852)){
>  > > > > >                 $this->Session->setFlash(__('usuario activado.',
>  > > true));
>  >
>  > > > > >                 }else{
>  > > > > >                  $this->Session->setFlash(__('no se activó.',
>  > > true));
>  >
>  > > > > >             }
>  >
>  > > > > >     }
>  >
>  > > > > > finalmente estoy intentando meter el valor de id en duro para ver 
> si
>  > > > > pasa
>  > > > > > pero nada, detecté que el valor que envio al modelo llega
>  > > correctamente
>  > > > > a
>  > > > > > este, entonces no se cual puede ser el error, ademas en el caso de
>  > > que
>  > > > > saque
>  > > > > > la linea $this->create() en el metodo de modelo, la funcion nunca 
> se
>  > > > > ejecuta
>  > > > > > correctamente , pero tampoco se hace el insert
>  >
>  > > > > > que puedo estar haciendo mal?
>  >
>  > > > > > gracias
>  >
>  > > > > > --
>  > > > > > Atte.
>  > > > > > Miguel Michelson Martinez
>  > > > > > ---------------------------------------
>  >
>  > > > --
>  > > > Atte.
>  > > > Miguel Michelson Martinez
>  > > > ---------------------------------------www.artenlinea.cl
>  >
>  > --
>  > Atte.
>  > Miguel Michelson Martinez
>  > ---------------------------------------www.artenlinea.cl
>  >
>



-- 
Leandro Emanuel López

--~--~---------~--~----~------------~-------~--~----~
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