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