La pagination de Laravel est très simple et facile à utiliser, mais il y a une chose qui n'est pas très idéale
Le lien généré par la pagination par défaut est
users?page=1
Ce formulaire n'est pas très. convivial pour le SEO (théorie) Ci-dessus)
Ensuite, nous aurons peut-être besoin de liens de pagination sous forme de
users/page/1
Alors comment faire ?
J'ai maintenant deux façons de l'implémenter
La première a été utilisée dans mon projet précédent, en régularisant directement
En régularisant directement dans blade Replace
{!! preg_replace("~(/?)\?page=~", '/page/', $users->render()) !!}
. Cette regex devrait pouvoir être optimisée, et j'espère que vous pourrez me donner quelques conseils.
Bien sûr, les itinéraires correspondants doivent également être configurés en conséquence. C'est très simple et ne sera pas développé.
L'effet de cette méthode est obtenu, mais elle n'a vraiment pas le style de laravel
Quel est le style de laravel ? composer, package
Présentons donc la deuxième méthode
laravel-paginateroute
L'utilisation est très simple, ce qui suit est extrait du fichier readme
La première étape
// 要注意对应版本,可到https://packagist.org 方便查看 composer require spatie/laravel-paginateroute
Étape 2
S'inscrire,
// config/app.php 'providers' => [ ... 'Spatie\PaginateRoute\PaginateRouteServiceProvider', ]; 'aliases' => [ ... 'PaginateRoute' => 'Spatie\PaginateRoute\PaginateRouteFacade', ];
Étape 3
// app/Providers/RouteServiceProvider.php use PaginateRoute; // ... public function boot(Router $router) { PaginateRoute::registerMacros(); parent::boot($router); }
Utiliser
Dans le routage
// app/Http/routes.php // Generates /users & /users/page/{page} Route::paginate('users', 'UsersController@index');
cela générera deux routes
/users /users/page/{page}
puis l'écrira normalement dans le contrôleur selon la pagination de laravel
C'est utilisé comme ceci dans la page. Il s'agit de la méthode d'écriture correspondante de simplePaginate
@if(PaginateRoute::hasPreviousPage()) <a href="{{ PaginateRoute::previousPageUrl() }}">Previous</a> @endif @if(PaginateRoute::hasNextPage($users)) <a href="{{ PaginateRoute::nextPageUrl($users) }}">Next</a> @endif
Recommandée : "tutoriel laravel"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!