Realizar una accion despues de guardar datos..

58 views
Skip to first unread message

Sergio Dorado

unread,
Nov 30, 2015, 8:32:26 AM11/30/15
to KumbiaPHP Framework
Buenos días a todos... 

Tengo una duda con respecto a los callbacks... estoy haciendo un sistema de asignación de turnos... primero tengo un formulario donde se cargan datos personales, luego de estar completos y validados se guardan los datos... ahora después de guardar tengo que realizar la asignación de turnos... Lo que yo no se es como llamar al procedimiento después de guardar los datos...

esto lo debería hacer con after_save()??  si es así, esto debería ir en el modelo con el que vengo trabajando? 

Muchas gracias por su tiempo...

Henry Stivens

unread,
Nov 30, 2015, 9:10:23 AM11/30/15
to kum...@googlegroups.com
Estos métodos se usan en las clases que hereden de la clase ActiveRecord, si tu modelo hereda de ActiveRecord esa es su ubicación.

after_save() Es llamado justo después de realizar el proceso de actualización/inserción cuando se llama el método save, update ó create en un modelo.

after_create() Es llamado justo después de realizar el proceso de actualización cuando se llama el método save o create en un modelo.

Ten en cuenta que si usas el after_save() este también se ejecutará cuando llames el update() de un objecto ActiveRecord.

Por ejemplo:

class Personal extends ActiveRecord
{   
    public function after_create()
    {
        $data = array('dia' => 'lunes', 'entrada' => '08:00', 'salida' => '18:00');
        $turno = new Turno($data);
        $turno->save();
    }
}





--
Viva KumbiaPHP Framework!
http://www.kumbiaphp.com/
Ha recibido este mensaje porque está suscrito a Grupo "KumbiaPHP Framework" de Grupos de Google.
Para obtener más opciones, visita este grupo en http://groups.google.com/group/kumbia?hl=es.
---
Has recibido este mensaje porque estás suscrito al grupo "KumbiaPHP Framework" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a kumbia+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Henry Stivens Adarme Muñoz
henry....@gmail.com

Sergio Dorado

unread,
Dec 2, 2015, 7:48:14 AM12/2/15
to kum...@googlegroups.com
muchas gracias por tu ayuda Henry!!!

Sergio Dorado

unread,
Dec 10, 2015, 10:08:33 AM12/10/15
to KumbiaPHP Framework

buenos dias.. 
Sigo peleando con el callback jeje. Como antes había explicado tengo un formulario de datos personales.. y luego de guardar debo llamar a otro controlodador que se encarga de asignar turnos... tengo lo siguiente:

class matriculado extends ActiveRecord
{
 public function after_create()
    {
        Router::route_to("controller: turnos","action: asignar");
    }
}

pero despues de guardar los datos del formulario me sale el siguiente error

Fatal error: Cannot redeclare class matriculado in C:\xampp\htdocs\turnos\default\app\models\matriculado.php on line 26

Si yo llamo al controlador "turnos" mediante url realiza la asignacion perfectamente, pero si o si necesito que sea despues de guradar los datos del formulario....

Epero puedan ayudarme...  y muchas gracias por su tiempo

Henry Stivens

unread,
Dec 10, 2015, 10:33:55 AM12/10/15
to kum...@googlegroups.com
Hola,

No, esa lógica no debe ir allí. Eso es un redireccionamiento a otra vista y debe ir en el controlador. Y ese método también está desaconsejado:

Usa

Redirect::to()

.
.
.
public function tu_accion){ 
  ...
  if($matriculado->create()){
    Redirect::to("turnos/asignar/$matriculado->id");
  }
  ..
}
.
.
.



--
Viva KumbiaPHP Framework!
http://www.kumbiaphp.com/
Ha recibido este mensaje porque está suscrito a Grupo "KumbiaPHP Framework" de Grupos de Google.
Para obtener más opciones, visita este grupo en http://groups.google.com/group/kumbia?hl=es.
---
Has recibido este mensaje porque estás suscrito al grupo "KumbiaPHP Framework" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a kumbia+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Sergio Dorado

unread,
Dec 11, 2015, 7:35:30 AM12/11/15
to kum...@googlegroups.com
Muchisimas gracias Henry... 
Reply all
Reply to author
Forward
0 new messages