Laravels Paging ist sehr einfach und benutzerfreundlich, aber eines ist nicht sehr ideal
Der durch die Standard-Paging-Funktion generierte Link ist
users?page=1
Dieses Formular ist nicht sehr freundlich zu SEO (Theorie oben)
Dann benötigen wir möglicherweise Paginierungslinks in der Form
users/page/1
Also, wie macht man das?
Ich habe jetzt zwei Möglichkeiten, es zu implementieren
Die erste wurde in meinem vorherigen Projekt verwendet, direkte Regularisierung
Direkte Regularisierung im Blade-Replace
{!! preg_replace("~(/?)\?page=~", '/page/', $users->render()) !!}
Dieser reguläre Ausdruck sollte Raum für Optimierungen bieten, und ich hoffe, Sie können mir einige Ratschläge geben.
Natürlich müssen auch die entsprechenden Routen entsprechend konfiguriert werden. Es ist sehr einfach, daher werde ich nicht näher darauf eingehen.
Der Effekt dieser Methode wird erreicht, aber sie hat wirklich nicht den Stil von Laravel.
Was ist der Stil von Laravel? Composer, Paket
Also stellen wir die zweite Methode vor
laravel-paginateroute
Die Verwendung ist sehr einfach, das Folgende ist ein Auszug aus der Readme
Der erste Schritt
// 要注意对应版本,可到https://packagist.org 方便查看 composer require spatie/laravel-paginateroute
Schritt 2
Registrieren,
// config/app.php 'providers' => [ ... 'Spatie\PaginateRoute\PaginateRouteServiceProvider', ]; 'aliases' => [ ... 'PaginateRoute' => 'Spatie\PaginateRoute\PaginateRouteFacade', ];
Schritt 3
// app/Providers/RouteServiceProvider.php use PaginateRoute; // ... public function boot(Router $router) { PaginateRoute::registerMacros(); parent::boot($router); }
Verwenden
Im Routing
// app/Http/routes.php // Generates /users & /users/page/{page} Route::paginate('users', 'UsersController@index');
werden dadurch zwei Routen generiert
/users /users/page/{page}
und dann entsprechend Laravels Paging normal in den Controller geschrieben
Das ist so Wird so auf der Seite verwendet. Dies ist die entsprechende Schreibmethode von simplePaginate
@if(PaginateRoute::hasPreviousPage()) <a href="{{ PaginateRoute::previousPageUrl() }}">Previous</a> @endif @if(PaginateRoute::hasNextPage($users)) <a href="{{ PaginateRoute::nextPageUrl($users) }}">Next</a> @endif
Empfohlen: „Laravel-Tutorial“
Das obige ist der detaillierte Inhalt vonEin kurzer Vortrag über Laravel Paging SEO. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!