Heim >PHP-Framework >Laravel >Ein kurzer Vortrag über Laravel Paging SEO

Ein kurzer Vortrag über Laravel Paging SEO

藏色散人
藏色散人nach vorne
2020-04-14 13:38:053614Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen