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
Auteur
Réponse acceptée

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