Maison > développement back-end > tutoriel php > Liens de pagination à réglage fin à Laravel

Liens de pagination à réglage fin à Laravel

Johnathan Smith
Libérer: 2025-03-07 00:02:10
original
630 Les gens l'ont consulté

Fine-tuning Pagination Links in 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
        };
    }
}
Copier après la connexion

dans votre modèle de lame (articles.index.blade.php):

{{ $articles->onEachSide($linksToShow)->links() }}
Copier après la connexion

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>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal