ホームページ > バックエンド開発 > PHPチュートリアル > Laravelの微調整ページネーションリンク

Laravelの微調整ページネーションリンク

Johnathan Smith
リリース: 2025-03-07 00:02:10
オリジナル
629 人が閲覧しました

Fine-tuning Pagination Links in Laravel

LaravelのonEachSideメソッドは、現在のページの近くに表示されるページネーションリンクに対するきめ細かい制御を提供し、ナビゲーションの明確さを強化します。 デフォルトのリンクカウントに依存する代わりに、アプリケーションの特定のニーズに合わせてディスプレイを調整できます。

これは、さまざまなサイズのデータ​​セットを処理するアプリケーションにとって特に有益です。 より大きなデータセットの場合、より多くのナビゲーションオプションを表示することをお勧めします。小さい場合は、よりクリーンで散らかっていないインターフェイスが望ましいです。

適応ページネーションを実装する方法:

ブレードテンプレート(
<?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
        };
    }
}
ログイン後にコピー
):

articles.index.blade.php

これにより、ダイナミックページネーションディスプレイが表示されます:
{{ $articles->onEachSide($linksToShow)->links() }}
ログイン後にコピー

動的リンク計算と組み合わせて、
<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>
ログイン後にコピー
メソッドは、よりユーザーフレンドリーで適応性のあるページネーションエクスペリエンスを作成します。

以上がLaravelの微調整ページネーションリンクの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート