Filtro multiplo get e params Spaguetti

Posted on by : admin Tags: ,

$filter = array(
‘id > ‘=>0,
‘cancelado_id IS NULL’
);

#BEGIN – FILTRO DINÂMICO COM BUSCA E PAGINAÇÃO – VERFIICANDO GET E PARAMS
if($_GET):
$paramsF = array();
if(!empty($_GET[‘nome’]) || isset($params[‘nome’])):
$paramsF[] = ‘nome:’.$params[‘nome’];
endif;

if(!empty($_GET[‘status’]) || isset($params[‘status’])):
$paramsF[] = ‘status:’.$params[‘status’];
endif;

if(!empty($_GET[‘perPage’]) || isset($params[‘perPage’])):
$paramsF[] = ‘perPage:’.$params[‘perPage’];
endif;

$paramsF = join(‘/’,$paramsF);
$this->redirect(‘/admin/operadora/index/’.$paramsF);
endif;

if(!empty($params[‘nome’])):
$filter[] = ‘nome LIKE “%’.$params[‘nome’].’%”‘;
endif;

if(!empty($params[‘status’])):
$filter[] = ‘status_id = ‘.$params[‘status’];
endif;
#BEGIN – FILTRO DINÂMICO COM BUSCA E PAGINAÇÃO – VERFIICANDO GET E PARAMS

$perPage = ($params[‘perPage’]) ? $params[‘perPage’] : 20;
$all = $this->Operadora->paginate(array(
‘perPage’=>$perPage,
‘page’=>$this->page(),
‘conditions’=>$filter,
‘order’=>’nome ASC’
));
$this->set(‘all’,$all);