Estou usando o Eloquent junto com a classe de paginação do Laravel 4.
Problema: quando existem alguns parâmetros GET na URL, por exemplo http://site.com/users?gender=female&body=hot
:, os links de paginação produzidos contêm apenas o page
parâmetro e nada mais.
Modelo de lâmina
{{ $users->link() }}
Há uma ->append()
função para isso, mas quando não sabemos quantos parâmetros GET existem, como podemos usar append()
para incluir os outros parâmetros GET nos links paginados sem que um pedaço inteiro de if
código atrapalhe nosso modelo blade?
appends
, nãoappend
. O encadeamento correto seria algo como$query->appends($foo)->links();
$query->appends(Input::except('page'))->links();
funcionou melhor. Caso contrário, a variável da página não foi atualizada quando você clicou em uma página. Laravel 4.1.24.{!! $myItems->appends(Input::except('page'))->render() !!}
Acho que você deve usar este código no Laravel 5. Além disso, isso funcionará não apenas com o parâmetro,
page
mas também com qualquer outro parâmetro (s):Pessoalmente, tento evitar usar
Facades
o máximo que posso. Usar funções auxiliares globais é menos código e muito elegante.ATUALIZAR:
Não use o
Input
Façade, pois ele está obsoleto no Laravel v6 +fonte
except('page')
com esta solução.Esteja ciente de que
Input::all()
ele incluirá os?page=
valores anteriores repetidamente em cada página que você abrir!por exemplo, se você estiver em
?page=1
e abrir a próxima página, ela será aberta.?page=1&page=2
Portanto, o último valor que a página terá será a página que você vê! não a página que você quer ver
Solução: use
Input::except(array('page'))
fonte
Você poderia usar
Exemplo no controlador:
Exemplo na visualização:
fonte
Não,
append()
masappends()
então, a resposta certa é:fonte
LARAVEL 5
A visualização deve conter algo como:
{!! $myItems->appends(Input::except('page'))->render() !!}
fonte
Use esta construção, para manter todos os parâmetros de entrada, exceto a página
Por quê?
1) você retira tudo o que adicionou a uma solicitação como essa
2) você não precisa de $ request como parâmetro de entrada para a função
3) você está excluindo "página"
PS) e funciona para o Laravel 5.1
fonte
Incluir na sua página de visualização
fonte
para quem em laravel 5 ou maior em lâmina:
você pode obter o item aprovado com
teste com
você deve obter o valor de $ alguma coisa
fonte
Laravel 7.x adicionou um novo método ao paginador:
Então você pode usá-lo como:
Para laravel abaixo de 7.x, use:
fonte
Passe o número da página para paginação também. Algo assim
fonte