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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage