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

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