plantillas - La paginación de Laravel no funciona con matriz en lugar de colección
laravel foreach index (1)
No está pasando la página actual, como debería, por lo que también obtiene la misma matriz. Esto funcionará
public function paginate($items,$perPage)
{
$pageStart = /Request::get(''page'', 1);
// Start displaying items from this number;
$offSet = ($pageStart * $perPage) - $perPage;
// Get only the items you need using array_slice
$itemsForCurrentPage = array_slice($items, $offSet, $perPage, true);
return new LengthAwarePaginator($itemsForCurrentPage, count($items), $perPage,Paginator::resolveCurrentPage(), array(''path'' => Paginator::resolveCurrentPath()));
}
Su función también funcionará si pasa el valor correcto para $pageStart
- Request::get(''page'', 1)
Estoy intentando paginar un conjunto de datos de matriz y ha resultado ser más desafiante de lo que pensaba.
Estoy usando Laravel 5
Así que tengo una interfaz / repositorio abstracto al que se extienden todos mis otros modelos y creé un método dentro de mi repositorio abstracto llamado paginate. He incluido ambos
use Illuminate/Pagination/Paginator;
y
use Illuminate/Pagination/LengthAwarePaginator;
Aquí está el método
public function paginate($items,$perPage,$pageStart=1)
{
// Start displaying items from this number;
$offSet = ($pageStart * $perPage) - $perPage;
// Get only the items you need using array_slice
$itemsForCurrentPage = array_slice($items, $offSet, $perPage, true);
return new LengthAwarePaginator($itemsForCurrentPage, count($items), $perPage,Paginator::resolveCurrentPage(), array(''path'' => Paginator::resolveCurrentPath()));
}
Entonces, como se puede imaginar, esta función acepta una matriz de $items
una variable $perPage
que indica cuántos elementos se $pageStart
a paginar y un $pageStart
que indica desde qué página comenzar.
La paginación funciona y puedo ver la instancia de LengthAwarePaginator
cuando estoy haciendo un dd()
, todos sus valores parecen correctos.
El problema comienza cuando estoy mostrando los resultados.
Cuando lo hago {!! $instances->render() !!}
{!! $instances->render() !!}
La visualización de los enlaces del paginador es buena, el parámetro de la page
cambia según los enlaces, pero los datos no están cambiando. Los datos son iguales en todas las páginas. Cuando uso Eloquent, por ejemplo Model::paginate(3)
todo funciona bien, pero cuando dd()
este LengthAwarePaginator
es idéntico a la instancia de LengthAwarePaginator
de mi paginador personalizado, con la excepción de que diseña una matriz de curso y no de colección .