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 !!