2014-09-01 5 views
1

salut :) im parsing ma base de données dans un tableau avec pagination !!pagination laravel sur le poste

c'est mon contrôleur

$theme = Theme::all(); 
      $questions = questionList::paginate(10); 
      $the = ""; 
      return View::make('home.home') 
      ->with('user',Auth::user()) 
      ->with('theme', $theme) 
      ->with('the' , $the) 
      ->with('questions',$questions); 

et moi j'ai {{ $questions->links(); }} sous ma table et il fonctionne très bien !! La chose est que j'ai une liste de thèmes pour trier les données dans le tableau de sorte que lorsque je clique sur divertisement, je reçois des données divertisement. Le problème est que lorsque je pagine, je retourne à la demande get et donne moi toutes les données !! quel est le problème thx :)

Répondre

1

Pour ajouter un filter/sort vous devez également ajouter que dans une clause where dans votre query et vous devez ajouter le query string dans vos liens de pagination. Par exemple:

public function showPosts() 
{ 
    $questions = app('questionList'); 

    if($filter = Input::get('filter')) { 
     $questions = $questions->where('theme', $filter); 
    } 

    $questions = $questions->paginate(10); 

    if(isset($filter)) { 
     $questions->appends('filter', $filter); 
    } 

    return View::make(...)->with(...); 
} 

Dans votre view vous devez créer des liens vers cette méthode (probablement en utilisant un nom d'itinéraire ou URL) avec filter chaîne de requête. Ainsi, par exemple:

<a href="{{ 'link to that method' }}?filter=divertisement">Divertisement</a> 
<a href="{{ 'link to that method' }}?filter=SomethingElse">SomethingElse</a>