Mysql
 sql >> Base de données >  >> RDS >> Mysql

La pagination dans Laravel 4 fonctionne pour une page. mais ne travaille pas pour un autre

Le formulaire de recherche est plus efficace en utilisant la méthode GET, car il est facile de marquer/enregistrer l'URL pour une utilisation ultérieure. Dans Pagination de Laravel 4, il existe une méthode pour ajouter la chaîne de requête. Ainsi, nous pouvons conserver la chaîne de requête de recherche dans d'autres pages.

Documents :http://laravel.com/docs/pagination#appending-to -pagination-links

Mon code :

Formulaire de recherche

<form method="get" action="{{{ URL::to('lib/search') }}}">
<input class="input-xxlarge" name="q" type="text" placeholder="Search...">
<div class="control-group">
    <div class="controls">
        <input type="submit" class="btn" id="submit" value="Submit" />
    </div>
</div>

Routage

Route::get('lib/search', '[email protected]');

Contrôleur

public function getSearch()
{
    $search = Input::get('q');

    $posts = $this->post->where('title', 'like', '%'.$search.'%')->paginate(10);

    return View::make('site/libraries/list', compact('posts', 'search'));
}   

Vue / Lame À la méthode pour afficher la pagination :

{{ $posts->appends(array('q' => $search))->links() }}

Nous pouvons donc conserver le q=? chaîne de requête dans d'autres pages (ex :/lib/search?page=2&q=apple)