2009
09.07
09.07
Una de los usos más comunes de las paginaciónes es limitar la visualización de el resultado de una búsqueda.
Cake no da una manera fácil de hacer esta cotidiana tarea, pero se puede solucionar este problema usando “Session”.
function admin_index() {
$criteria=null;
$cond=array();
if(!empty($this->data)){
$apellido_paterno=$this->data['Buscar']['apellido_paterno'];
$nombre=$this->data['Buscar']['nombre'];
$rut=trim($this->data['Buscar']['rut']);
if($apellido_paterno!='')$cond[]="Usuario.apellido_paterno LIKE '%$apellido_paterno%' ";
if($nombre!='')$cond[]="Usuario.nombre LIKE '%$nombre%' ";
if($rut!='')$cond[]="Usuario.rut =$rut ";
if(count($cond)>1){
$criteria=implode(" AND ",$cond);
}else{
$criteria=$cond[0];
$this->Session->write('Filtro.usuario', $criteria);
}
if(empty($cond))$criteria=null;
}
$filtro = $this->Session->read('Filtro.usuario');
$this->set('usuario', $this->paginate('Usuario',$filtro));
}Éste trozo de código, implementa una búsqueda de usuario por nombre, apellido paterno o RUT (DNI), guardando el filtro en una variable de sesion, para usarlo atravez de las distintas páginas.
Para resetear el filtro, solo debemos borrar la variable de sesión
$this->Session->write('Filtro.usuario', null);Así podemos mostrar todos los registros sin el filtro de búsqueda.

Sin Comentarios
Agregue su comantario