Filtrage avec les paramètres de page URL

Par eRaph, il y a 8 ans


Autre petit sujet que je soumet à la communauté !

Y a t'il une façon élégente d'utiliser les paramètres GET de mon url pour réaliser un filtrage sur ma requête ?

J'ai appliqué des conditions dans tous les sens, et je ne suis pas forcément très fier de moi ! (le but étant de ne pas prendre en compte les autres paramètres du type 'sort', 'order' qui peuvent également apparaitre à cause du Paginate)

$query = $this->Articles->find('all'); $query->contain(array('Choixcategories','Choixprix','Choixstyles')); $params = $this->request->getQueryParams(); // On supprime les critères nuls : $params=array_filter($params); $conditions= array(); if (isset($params['choixcategorie_id'])) { $conditions['choixcategorie_id']=$params['choixcategorie_id']; } if (isset($params['choixstyle_id'])) { $conditions['choixstyle_id']=$params['choixstyle_id']; } if (isset($params['choixprix_id'])) { $conditions['choixprix_id']=$params['choixprix_id']; } if ($conditions != array()) { $conditions = array('AND'=>$conditions); $query->where($conditions); }

Merci !!

1 réponse

Kareylo, il y a 8 ans

Tu peux toujours faire un Component pour tout mettre dans un seul endroit