Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A paginação no Laravel 4 funciona para uma página. mas não está trabalhando para outro


Formulário de pesquisa melhor usando o método GET, porque é fácil marcar/salvar o URL para uso posterior. Na paginação do Laravel 4, existe um método para anexar a string de consulta. Assim, podemos manter a querystring de pesquisa em outras páginas.

Documentos:http://laravel.com/docs/pagination#appending-to -links de paginação

Meu código:

Formulário de pesquisa
<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>



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

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

Visualização/Lâmina At método para exibir a paginação:
{{ $posts->appends(array('q' => $search))->links() }}

Para que possamos manter o q=? querystring em outras páginas (ex:/lib/search?page=2&q=apple)