Maison >développement back-end >tutoriel php >Liens de pagination à réglage fin à Laravel
La méthode onEachSide
de Laravel offre un contrôle granulaire sur les liens de pagination affichés près de la page actuelle, améliorant la clarté de navigation. Au lieu de compter sur le nombre de liens par défaut, vous pouvez adapter l'écran en fonction des besoins spécifiques de votre application.
Ceci est particulièrement bénéfique pour les applications gérant des ensembles de données de tailles variables. Pour les ensembles de données plus grands, vous voudrez peut-être afficher plus d'options de navigation; Pour les plus petits, une interface plus propre et moins encombrée est préférable.
Voici comment implémenter une pagination adaptative:
<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; class ArticleController extends Controller { public function index(Request $request) { $perPage = $this->determinePerPage($request); $articles = Article::latest() ->withCount('comments') ->paginate($perPage); $linksToShow = $this->calculateVisibleLinks($articles); return view('articles.index', compact('articles', 'linksToShow')); } private function determinePerPage(Request $request): int { return $request->query('show', 10); } private function calculateVisibleLinks($paginator): int { $totalPages = $paginator->lastPage(); // Dynamically adjust visible links based on total pages return match(true) { $totalPages > 20 => 3, $totalPages > 10 => 2, default => 1 }; } }
dans votre modèle de lame (articles.index.blade.php
):
{{ $articles->onEachSide($linksToShow)->links() }}
Cela se traduit par un affichage de pagination dynamique:
<code>// ~50 articles (5 pages) « 1 2 3 4 5 » // ~150 articles (15 pages) « 1 ... 4 5 6 7 8 ... 15 » // ~250 articles (25 pages) « 1 ... 4 5 6 7 8 9 10 ... 25 »</code>
La méthode onEachSide
, combinée à un calcul de liaison dynamique, crée une expérience de pagination plus conviviale et adaptable.
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!