Hola, yo siempre he trabajado con ‘beforeSave() ’ en el modelo para que me haga alguna tarea antes de ejecutar la función ‘save()’ pero hoy vi que había otra función que se llama ‘onBeforeSave() ’ y la verdad no entiendo como funciona ni cuando utilizar una u otra o si son lo mismo.
De ante mano muchas gracias por las respuestas que me puedan brindar.
Bueno
por lo que vi, el beforeSave por defecto hace:
$this->raiseEvent('onBeforeSave',$event); //CActiveRecord
(mira CComponent, public function raiseEvent($name,$event) para saber mas sobre esto)
y en la documentacion de befeoreSave http://www.yiiframework.com/doc/api/CActiveRecord#beforeSave-detail te recomiendan llamar al beforeSave por defecto
por lo que tienes dos opciones
usas beforeSave y al final llamas a parent::beforeSave()
usas onBeforesave y al final haces un $this->raiseEvent(‘onBeforeSave’,$event);
yo creo que deberías usar beforeSave, porque algún día el master qiang
va a agregar algo al beforeSave y te vas a perder de ese comportamiento
en resumen: hacen lo mismo, en ambos debes hacer una llamada al final
Hola, yo siempre he trabajado con ‘beforeSave() ’ en el modelo para que me haga alguna tarea antes de ejecutar la función ‘save()’ pero hoy vi que había otra función que se llama ‘onBeforeSave() ’ y la verdad no entiendo como funciona ni cuando utilizar una u otra o si son lo mismo.
De ante mano muchas gracias por las respuestas que me puedan brindar.
Bueno
por lo que vi, el beforeSave por defecto hace:
$this->raiseEvent('onBeforeSave',$event); //CActiveRecord
(mira CComponent, public function raiseEvent($name,$event) para saber mas sobre esto)
y en la documentacion de befeoreSave http://www.yiiframework.com/doc/api/CActiveRecord#beforeSave-detail te recomiendan llamar al beforeSave por defecto
por lo que tienes dos opciones
usas beforeSave y al final llamas a parent::beforeSave()
usas onBeforesave y al final haces un $this->raiseEvent(‘onBeforeSave’,$event);
yo creo que deberías usar beforeSave, porque algún día el master qiang
va a agregar algo al beforeSave y te vas a perder de ese comportamiento
en resumen: hacen lo mismo, en ambos debes hacer una llamada al final
Genial Horacio, muchas gracias!