Hola y bienvenidos.
Actualmente estamos presentando una eventualidad, ya que si realizamos un filtro, y trae muchos resultados, tanto que se ejecuta el paginador, observaremos que el filtro en la URL se pierde.
En este sentido vamos a mostrar diferentes formas de solucionar este inconveniente:
Vamos a hacer en el controlador llamado AgendaController en el método index:
public function index(Request $request)
{
$buscar = $request->get('buscarpor');
$tipo = $request->get('tipo');
$variablesurl=$request->all();
$Agenda = Agenda::buscarpor($tipo, $buscar)->paginate(5)->appends($variablesurl);
return view('agenda.index', compact('Agenda'));
}
Como podemos observar creamos una nueva variable llamada $variablesurl que va a ser igual a todas las variables que están en el request.
y solo basta con agregar despues del paginate(5) el método appends y pasarle por parámetro esta variable.
Otras formas de realizar lo mismo es sustituyendo la línea
$variablesurl=$request->all();
por una de estas posibles opciones:
//forma 1
$variablesurl=$request->input();
//forma 2
$variablesurl=$request->query();
//forma 3
$variablesurl=$request->except(['page']);
//forma 4
$variablesurl=$_GET;
//forma 5
$variablesurl= [
'tipo' => $tipo,
'buscarpor' => $buscar
];
si no queremos usar estas opciones en el controlador y lo queremos hacer en la vista, podemos poner el método index del controlador de la siguiente manera:
public function index(Request $request)
{
$buscar = $request->get('buscarpor');
$tipo = $request->get('tipo');
//$variablesurl=$request->all();
//$variablesurl=$request->input();
//$variablesurl=$request->query();
//$variablesurl=$request->except(['page']);
//$variablesurl=$_GET;
/*$variablesurl= [
'tipo' => $tipo,
'buscarpor' => $buscar
];*/
//dd($variablesurl);
/*$Agenda = Agenda::buscarpor($tipo, $buscar)->paginate(5)->appends($variablesurl);
*/
$Agenda = Agenda::buscarpor($tipo, $buscar)->paginate(5);
return view('agenda.index', compact('Agenda'));
}
e ir a la vista index.blade.php
y cambiar la línea
{{ $Agenda->links() }}
por una de estas opciones:
{{-- Forma 1 --}}
{{ $Agenda->appends(Request::only(['tipo','buscarpor']))->links() }}
{{-- Forma 2 --}}
{!! $Agenda->appends(Request::only(['tipo','buscarpor']))->links() !!}
{{-- Forma 3 --}}
{{ $Agenda->appends($_GET)->links() }}
Espero que les haya servidor, así que sin masssss, nos veremos en la próxima.