Laravel : Pretty Pagination URLs


Laravel verwendet für die Pagination URL Out of the box GET-Variablen: ?page=1. Damit aus ?page=1 sowas wie /page/1 wird, konnte ich seitens Laravel keine Lösung finden. Damit ich bei zukünftigen Updates möglichst wenig Probleme habe, verwende ich die Laravel-Pagination mit einer minimalen Übersteuerung: Mit einer zusätzlichen Route, einer Variable die aus der Route die Seitennummer übersteuert und in den Blade-Templates String-Replaces die die Standard-Funktion für das Rendern entsprechend anpassen.

ZjZgAu27GykP3l1sYDbxySU3p9VbkMyRew65WJe5.png

in routes\web.php

bei z.B. folgender Route 

Route::get('topic/{topic}', 'TopicController@index')->name('topic');

zusätzlich eine Zeile für die Pagination:

Route::get('topic/{topic}/page/{page}', 'TopicController@index');
Route::get('topic/{topic}', 'TopicController@index');

Im Controller

    public function show($slug,$page=1)
    {   //Set the current page:
        \Illuminate\Pagination\Paginator::currentPageResolver(function () use ($page) {
        return $page;
        });
        ...

Ab diesem Zeitpunkt können zusätzliche Seiten bereits über die neuen Links aufgerufen werden:

/page/2

Links in den Blade Templates

4hhSEqwHrt6oTwNoGowJLoOdwcKmIttxhoZ7no7K.png

In den Blade-Templates können die Links dann wie folgt angepasst werden:

{!! str_replace("?page=", "/page/",preg_replace("@/page/([0-9]+)@","",str_replace("?page=1\"", "\"",$stories->render()))) !!}	
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Preview Laravel Beispiel Tutorial - Schritt für Schritt

Laravel Beispiel Tutorial - Schritt für Schritt

geändert: 27.07.2020 von Bernhard (Erstveröffentlichung: 21.08.2016)

Wie in dem zuvor veröffentlichten Artikel "Übersicht Laravel Funktion" bereits angekündigt, habe ich für Laravel ein Praxis-Beispiel erstellt. Das Beispiel kann bestimmte Datenbankeinträge erstellen, anzeigen, bearbeiten und löschen. In einem nächsten Beispiel werde ich zu dem hier beschriebenen Beispiel eine Benutzeranmeldung und Berechtigung hinzufügen (Authentification, Authorization), vorerst starten wir ohne dieser .... ... weiterlesen

Preview Laravel Vue

Laravel Vue

erstellt: 29.10.2019 von Bernhard

.vue Files setzen ein Webpack-Setup voraus ... ... weiterlesen

Preview Laravel Authentication und Authorization Beispiel

Laravel Authentication und Authorization Beispiel

geändert: 06.10.2019 von Bernhard (Erstveröffentlichung: 12.09.2016)

Laravel ist für Benutzer-Anmeldungen bereits vorbereitet, das Aktivieren der Funktion erfolgt mit einem einfachen Befehl. ... weiterlesen


Fragen / Kommentare