2016-05-24 10 views
2

Probleme mit der Arbeit meiner Seitennummerierung in Laravel 5.2 Ich verwende eine foreach, um eine Liste von Objekten zu generieren, in denen jedes Objekt eine bestimmte Rangfolge hat. (Wettbewerb)Laravel Benutzerdefinierte Paginierung

Die erste Abfrage, die ich verwendet wurde, war diese:

$goedeDoelen = GoedDoel::orderBy('punten', 'desc')->simplePaginate(5); 

Diese ziemlich ok gearbeitet, das einzige Problem war, dass mein Ranking alles zurückgesetzt würde ich auf eine andere Seite gehen.

Beispiel: Seite 1 hat Objekte von Rang 1 - 5, Seite 2 sollte die Ränge 6-10 haben. Wenn Sie die erste Paginate-Methode verwenden, würden Objekte auf der zweiten Seite wieder bei 1 beginnen.

Ich habe versucht, dies zu umgehen, indem ich die Rangfolge als zusätzliches Attribut zu meinen Eloquent-Sammlungen hinzufüge.

$ranking = GoedDoel::orderBy('punten', 'desc')->get(); 
    foreach($ranking as $key => $item) { 
     $item->ranking = $key+1; 
    } 

Danach habe ich versucht, -> simplePaginate() auf meiner aktualisierten Sammlung zu verwenden. Dies ergab einen Fehler.

Ich habe einen benutzerdefinierten Paginator erstellt.

$goedeDoelen = new Paginator($ranking, 5); 

Dies funktioniert nicht wie vorgesehen. Wenn ich zu meiner zweiten Seite gehe, versagt die URL und geht zu einer anderen Ansicht.

Wie kann ich sicherstellen, dass der Paginator weiß, was meine aktuelle URL ist, auf die sie die anzuwenden haben? Page = 2

Antwort

0

Sie benötigen die paginate() Methode zu verwenden.

$goedeDoelen = GoedDoel::orderBy('punten', 'desc')->paginate(5); 

{!! $goedeDoelen->links() !!} 
+0

Ich habe das versucht. Ich weiß, das funktioniert. Was ich zu erreichen versuchte, war, meiner Sammlung ein Attribut hinzuzufügen und anschließend die aktualisierten Kollektionen zu paginieren. – LucasPoignon

Verwandte Themen