Bonjour,
Je suis en train de faire un système de tri par différents critères pour des pages produits (+ haut pris, + bas prix, derniers ajouts), et comme je n'affiche que 12 éléments par page, je me sers de ce magnifique outils de laravel qu'est Paginate.
Donc : voici le select qui me permet de faire le choix pour la méthode de tri :
Ma route :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 {{ Form::open(array('url' => 'cat/'.$categ->lienCat.'/tri', 'method'=>'get')) }} <select onchange='this.form.submit()' name='tri'> <option value=0>--Sélectionnez un critère--</option> <option value=1>Prix croissants</option> <option value=2>Prix décroissants</option> <option value=3>Derniers ajouts</options> </select> {{Form::close()}}
Ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Route::get('cat/{slug}/tri', 'CategController@triCateg');
Le soucis, c'est que le tri marche magnifiquement bien pour la première page, mais dès que je passe sur la page 2, ça m'envoie en enfer. Ca doit sans doute avoir à faire avec le GET, mais je ne vois pas comment faire. Si vous avez une idée, je suis preneuse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public function triCateg($slug) { $categ=Categorie::where('lienCat', '=', $slug)->first(); $subcat = $categ->categs; switch (Input::get('tri')) { case 1: $prod=$categ->prods()->where('afficher','=','1')->orderBy('prixref', 'asc')->paginate(12); break; case 2: $prod=$categ->prods()->where('afficher','=','1')->orderBy('prixref', 'desc')->paginate(12); break; case 3: $prod=$categ->prods()->where('afficher','=','1')->orderBy('id', 'desc')->paginate(12); break; case 0: $prod=$categ->prods()->where('afficher','=','1')->paginate(12); break; } $title = $categ->nom_cat; // foreach($categ->prods as $p){ // $prod->add($p); // } // // $prod->paginate(12); if($categ->rid_cat==0){ return View::make('categ/categ')->with('categ', $categ)->with('prod', $prod)->with('subcat', $subcat)->with('title', $title); } else{ return View::make('categ/subcateg')->with('categ', $categ)->with('prod', $prod)->with('subcat', $subcat)->with('title', $title); } }
Merci d'avoir pris le temps de lire, et encore un plus grand merci si vous parvenez à m'aiguiller sur une solution
EDIT : Voici l'URL quand je choisis mon critère de tri :
Et l'URL quand je change de page :/cat/$slug/tri?tri=1
Donc la page 2 fait sauter le critère de tri vu que c'est en GET... Une idée pour que je le garde ?/cat/$slug/tri?page=2
Partager