Callbacks ActiveRecord

De KumbiaPHP Framework Wiki
Revisión del 21:36 27 abr 2011 de 201.249.30.96 (discusión) (→‎before_update)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Introduccion[editar]

El ActiveRecord controla el ciclo de vida de los objetos creados y leídos, supervisando cuando se modifican, se almacenan o se borran. Usando callbacks (o eventos), el ActiveRecord nos permite intervenir en esta supervisión. Podemos escribir el código que pueda ser invocado en cualquier evento significativo en la vida de un objeto. Con los callbacks podemos realizar validación compleja, revisar los valores que vienen desde y hacia la base de datos, e incluso evitar que ciertas operaciones finalicen. Un ejemplo de estos callbacks puede ser una validación en productos que evita que productos ‘activos’ sean borrados.

class User extends ActiveRecord {
 
     public $before_delete = “no_borrar_activos”;
 
     public function no_borrar_activos(){
        if($this->estado==’A’){
          Flash::error(‘No se puede borrar Productos Activos’);
          return ‘cancel’;
        }
     }
    
     public function after_delete(){
          Flash::success("Se borro el usuario $this->nombre");
     }

}

A continuación otros callbacks que podemos encontrar en ActiveRecord. El orden en el que son presentados es en el que se llaman si están definidos:

before_validation[editar]

Es llamado justo antes de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

before_validation_on_create[editar]

Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

before_validation_on_update[editar]

Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

after_validation_on_create[editar]

Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

after_validation_on_update[editar]

Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

after_validation[editar]

Es llamado justo después de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

before_save[editar]

Es llamado justo antes de realizar el proceso de guardar, metodo save() y al momento de editar/actualizar, metodo update() en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

       public function before_save() {            
           $rs = $this->find_first("cedula = $this->cedula");
           if($rs) {
                   Flash::warning("Ya existe un usuario registrado bajo esta cedula");
                   return 'cancel';
           }                
       }

before_update[editar]

Es llamado justo antes de realizar el proceso de actualización cuando se llama el método save o update en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'. El mismo codigo del before_save() para before_update.

before_create[editar]

Es llamado justo antes de realizar el proceso de inserción cuando se llama el método save o create en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

after_update[editar]

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

after_create[editar]

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

after_save[editar]

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.

before_delete[editar]

Es llamado justo antes de realizar el proceso de borrado cuando se llama el método delete en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.

after_delete[editar]

Es llamado justo después de realizar el proceso de borrado cuando se llama el método delete en un modelo.