Laravel Paginierung funktioniert nicht mit Array statt Sammlung
Ich versuche, einen Array-Datensatz zu paginieren, und er hat sich als schwieriger erwiesen, als ich gedacht habe.
Ich benutze Laravel 5
So habe ich eine abstrakte Schnittstelle / ein abstraktes Repository, auf das sich alle meine anderen Modelle erstrecken, und ich habe eine Methode in meinem abstrakten Repository-Aufruf paginate erstellt. Ich habe beide @ enthalt
use Illuminate\Pagination\Paginator;
un
use Illuminate\Pagination\LengthAwarePaginator;
Hier ist die Methode
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()));
}
So wie Sie sich vorstellen können, akzeptiert diese Funktion ein Array von$items
a $perPage
-Variable, die angibt, wie viele Elemente paginiert werden sollen, und ein$pageStart
das gibt an, von welcher Seite aus gestartet werden soll.
Die Paginierung funktioniert und ich kann @ sehLengthAwarePaginator
Instanz, wenn ich ein @ macdd()
, alle seine Werte scheinen in Ordnung zu sein.
Das Problem beginnt, wenn ich die Ergebnisse anzeige.
Wann mache ich{!! $instances->render() !!}
Die Paginator Links Anzeige ist in Ordnung, diepage
-Parameter ändert sich je nach Verknüpfung, aber die Daten ändern sich nicht. Die Daten sind auf jeder Seite gleich. Wenn ich Eloquent zum Beispiel benutzeModel::paginate(3)
alles funktioniert gut, aber wenn ichdd()
DiesLengthAwarePaginator
es ist identisch mit demLengthAwarePaginator
Instanz meines benutzerdefinierten Paginators, mit der Ausnahme, dass er ein Array von Kursen und keine Auflistung paginiert.