Estoy usando Eloquent junto con la clase de paginación de Laravel 4.
Problema: cuando hay algunos parámetros GET en la URL, por ejemplo:, http://site.com/users?gender=female&body=hot
los enlaces de paginación producidos solo contienen el page
parámetro y nada más.
Plantilla de hoja
{{ $users->link() }}
Hay una ->append()
función para esto, pero cuando no sabemos cuántos de los parámetros GET hay, ¿cómo podemos usar append()
para incluir los otros parámetros GET en los enlaces paginados sin que una gran cantidad de if
código estropee nuestra plantilla blade?
appends
, noappend
. El encadenamiento correcto sería algo así como$query->appends($foo)->links();
$query->appends(Input::except('page'))->links();
funcionaba mejor. De lo contrario, la variable de página no se actualizó al hacer clic en una página. Laravel 4.1.24.{!! $myItems->appends(Input::except('page'))->render() !!}
Creo que deberías usar este código en Laravel 5. Además, esto funcionará no solo con el parámetro
page
sino también con cualquier otro parámetro (s):Personalmente, trato de evitar usar
Facades
tanto como puedo. El uso de funciones auxiliares globales es menos código y mucho más elegante.ACTUALIZAR:
No use
Input
Facade ya que está obsoleto en Laravel v6 +fuente
except('page')
esta solución.Tenga en cuenta de la
Input::all()
, incluirá los anteriores?page=
valores y otra vez en cada página se abre!por ejemplo, si está dentro
?page=1
y abre la página siguiente, se abrirá. ¡?page=1&page=2
Así que el último valor que tome la página será la página que vea! no es la página que quieres ver
Solución: use
Input::except(array('page'))
fuente
Podrías usar
Ejemplo en el controlador:
Ejemplo en la vista:
fuente
No
append()
peroappends()
así, la respuesta correcta es:fuente
LARAVEL 5
La vista debe contener algo como:
{!! $myItems->appends(Input::except('page'))->render() !!}
fuente
Utilice esta construcción para mantener todos los parámetros de entrada excepto la página
¿Por qué?
1) quitas todo lo que agregó para pedir así
2) no necesita $ request como parámetro de entrada para la función
3) estás excluyendo "página"
PS) y funciona para Laravel 5.1
fuente
Incluya esto en su página de vista
fuente
para quien uno en laravel 5 o mayor en blade:
puedes obtener el artículo pasado con
pruébalo con
debes obtener $ algo de valor
fuente
Laravel 7.x ha agregado un nuevo método al paginador:
Entonces puedes usarlo como:
Para laravel por debajo de 7.x use:
fuente
Pase también el número de página para la paginación. Algo como esto
fuente