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));
}
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