Pagination après filtrage

Par visualapproch, il y a 10 ans


Bonjour
La pagination ne fonctionne pas après une recheche via un formulaire intégré dans la vue. Les paramètres de la recherche repassent à null sur la page 2 et suivantes . Avez-vous une idée?
Merci

public function index() { if (isset($this->request->data)) { $search = $this->request->data; debug($this->request->data); } //Pagination spécifique à cette fonction : limite maxi par page $this->paginate = [ 'limit' => 25, 'contain' => ['Nafs'], //pour permettren d'afficher le libellé NAF au lieu du code ]; //préparation de la requête $query = $this->Prospects->find(); //valeur globale récupérée qui sert de paramètre de sélection $cp = Configure::read('Secteur.code'); //debug //debug($cp); //Modification de la requete avec ajout du paramètre de sélection if ($cp > 0) { $query->where(['geo_id_secteur' => $cp]); } //Search if(isset($search) && !empty($search)) { if ($search['activite'] != '') { $query->where(['prospect_activite LIKE' => '%'.$search['activite'].'%']); } if ($search['entreprise'] != '') { $query->where(['prospect_entreprise LIKE' => '%'.$search['entreprise'].'%']); } if ($search['code_postal'] != '') { $query->where(['prospect_cp LIKE' => '%'.$search['code_postal'].'%']); $query->order(['prospect_entreprise' => 'ASC']); } } /* $cacheKey = $this->name . '_' . md5(json_encode($this->request->query)); $query->cache($cacheKey);*/ //Création de la variable prospects paginée pour utilisation dans la vue $this->set('prospects', $this->paginate($query)); $this->set('_serialize', ['prospects']); //debug( $this->paginate($query)); }

1 réponse

visualapproch, il y a 10 ans

Je me réponds moi même
Utiliset un formulaire avec type=get au lieu de type=post
et remplacer request->data par request->query