Mantendo Query String “Parâmetros” na Paginação. 6

Recentemente precisei adicionar paginação aos meus filtros “GET” em minhas views, pois o filtro somente possui o parâmetro ?page=1 a não ser que você faça em cada página onde utiliza a paginação: $paginator->appends($array_query), então utilizei este método genérico que funciona para todos as paginações do meu projeto.

Espero que seja útil.

//Adicionei em meu projeto no arquivo routes.php
View::composer(Paginator::getViewName(), function($view) {
   $query = array_except( Input::query(), Paginator::getPageName() );
  $view->paginator->appends($query);
});

Eu também já havia postado aqui:
http://laravelsnippets.com/members/snippets/view-composer-extends-paginator-with-query-string

Qualquer dúvida, estou a disposição.
https://plus.google.com/u/0/112101739663216187961/posts
https://www.facebook.com/flavio.h.ferreira
ou me envie um email no GMAIL

  • Pingback: Mantendo Query String “Parâmetros” na Paginação. | devphp.in()

  • http://www.marcelofabiano.com Marcelo Fabiano

    Ótimo post! Realmente me ajudou mto! Não coloquei no Route criei um controller padrão SiteBaseController e acrescentei no __construct()! Obrigado

  • Flavio Ribeiro

    Não estou conseguindo fazer isto no Laravel 5.1 . Alguma mudança nessa versão?

    • http://devphp.in fhferreira

      Versão 5.1 o Paginator funciona diferente:

      teste:
      {!! $records->appends(Input::except(‘page’))->links() !!}

      • Flavio Ribeiro

        Obrigado pela resposta, mas ainda não funcionou.
        coloquei na view, no lugar do
        {!! $items->render() !!}
        substituindo o $objetos por $items, que é a variável que uso, mas retornou:
        ‘Method links does not exist’

        • Flavio Ribeiro

          substituí o ‘links’ por ‘render’ e funcionou.
          Ficou então:
          {!! $items->appends(Input::except(‘page’))->render() !!}