Diferencia entre revisiones de «Callbacks ActiveRecord»

De KumbiaPHP Framework Wiki
Línea 50: Línea 50:
  
 
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 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'.
 +
 +
public function before_save() {           
 +
            $rs = $this->find_first("contidions: cedula=$this->cedula");
 +
            if($rs) {
 +
                    Flash::warning("Ya existe un usuario registrado bajo esta cedula");
 +
                    return 'cancel';
 +
            }               
 +
        }
  
 
=before_update=
 
=before_update=

Revisión del 01:42 26 abr 2011

Introduccion

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

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

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

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

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

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

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

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

public function before_save() {

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

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

before_create

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

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

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

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

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

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