Laravel Paginierung pretty URL
Gibt es einen Weg, um einen Seitenumbruch pretty-URL in Laravel 4?
Beispielsweise standardmäßig:
http://example.com/something/?page=3
Ist und was ich lernen möchte:
http://example.com/something/page/3
Auch die Paginierung sollte machen diesen Weg, und das Anhängen der Seitenumbruch erscheinen soll, in dieser Weise.
InformationsquelleAutor der Frage jOpacic | 2014-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein hacky Abhilfe. Ich bin mit Laravel v4.1.23. Es wird davon ausgegangen Seitenzahl ist das Letzte bit des url. Habe es noch nicht getestet so tief bin ich daran interessiert, alle bugs, die die Leute finden können. Ich bin auch mehr daran interessiert, eine bessere Lösung 🙂
Route:
Anzeigen:
Modell:
Migration:
InformationsquelleAutor der Antwort bitlather
Es ist möglich, aber Sie müssen code ein wenig.
Zuerst müssen Sie ändern, in
app/config/app.php
Paginierung service Anbieter - Sie brauchen, um Ihre eigenen schreiben.Kommentar:
hinzufügen und
im Abschnitt " Anbieter.
Nun müssen Sie erstellen Ihre PaginationServiceProvider benutzerdefinierte Paginierung Fabrik:
model/Providers/PaginationServiceProvider.php
Datei:Oben erstellen Sie
Providers\PaginationFactory
Objekt, so, jetzt müssen wir diese Datei zu erstellen:model/providers/PaginationFactory.php
Datei:Hier erstellen Sie nur
\Utils\Paginator
Objekt so, jetzt lassen wir es schaffen:model/Utils/Paginator.php
Datei:In dieser Datei, die wir schließlich überschreiben die Standard-Methode zum erstellen der Paginierung urls.
Nehmen wir an, Sie haben die Strecke so definiert ist:
Als Sie sehen, dass wir hier definierte route-Namen mit
as
(es ist wichtig, da der Paginator Umsetzung oben - aber man kann es natürlich auf verschiedene Art und Weise).Nun in der Methode
displayList
vonCategoryController
Klasse, die Sie tun können:Wenn Sie in Ihrem Ausblick, den Sie hinzufügen:
erhalten Sie generierten urls auf diese Weise:
ohne ? im query-string
Aber meiner Meinung nach so etwas sollte Hinzugefügt werden, indem Standard-oder sollte es zumindest ausreichen, um erweitern einer Klasse und nicht für 3 Klassen nur eine Methode implementieren.
InformationsquelleAutor der Antwort Marcin Nabiałek
hoffe, das ist hilfreich für jemanden, den ich gemacht habe, eine Eigenschaft, die verwendet werden, in den Modellen.
Die Idee ist, dass diese custom-Methode erkennen kann, die aktuelle route, und stellen Sie verbindungen auf die Verwendung der richtigen segment position für die {page} - parameter:
https://gist.github.com/zofe/ced0054e6ac6eff1ea95
InformationsquelleAutor der Antwort Felice Ostuni
Könnte Sie wahrscheinlich einige Phantasie-routing zu bekommen, um zu arbeiten. Irgendwo entlang der Linien von:
Diesem Beispiel aus den docs hier.
InformationsquelleAutor der Antwort kddeisz
Nur so kann ich mir vorstellen, dies zu tun ist durch die Verlängerung der Paginator-Klasse zu tun die passenden. Allerdings, weiß nur, dass es möglicherweise in Konflikt mit third-party-Pakete und andere Klassen/Bibliotheken. Die aktuelle Methode ist entwickelt, um mit fast allen Klassen/Bibliotheken/Pakete.
Vielleicht könnten Sie versuchen, die folgenden:
http://packalyst.com/packages/package/desmart/pagination ('Paginierung' durch 'desmart')
InformationsquelleAutor der Antwort Mike Rockétt
Für alle, die mit laravel version 5.6+
Können Sie zusätzliche Parameter die Seitenzahl.
Laut: https://laravel.com/api/5.6/Illuminate/Database/Eloquent/Builder.html#method_paginate
Beispiel:
StoreController.php
Dann, Sie in Ihrer blade-Vorlage. Sie können nur
route( ... , array('page' => $page));
InformationsquelleAutor der Antwort Aki W