Diferencia entre revisiones de «Callbacks ActiveRecord»

De KumbiaPHP Framework Wiki
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 49: Línea 49:
 
=before_save =
 
=before_save =
  
Es llamado justo antes de realizar el proceso de guardar cuando se llama el método save en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.
+
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=
 
=before_update=
  
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'.
+
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=
 
=before_create=

Revisión actual del 21:36 27 abr 2011

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.