Laravelでページネーションを静的にする方法

1. Laravel のページネーションをキャッシュで静的化するには、以下手順で行います。

  1. まず、config/cache.php の設定ファイルで、ファイルキャッシュドライバや Redis キャッシュドライバなど、適切なキャッシュドライバを選択する必要があります。
  2. コントローラメソッド内でLaravelのペジネーションクエリメソッドを利用してデータを取得しキャッシュに保存します。例:
use Illuminate\Support\Facades\Cache;

public function index()
{
    $key = 'posts_page_' . request('page', 1); // 根据当前页数生成缓存的键名
    $minutes = 60; // 缓存的时间,单位为分钟

    $posts = Cache::remember($key, $minutes, function () {
        return Post::paginate(10); // 使用paginate方法进行分页查询
    });

    return view('posts.index', compact('posts'));
}

上記コードでは Cache::remember メソッドを使用し、ページネーションクエリーの結果をキャッシュに保存しておき、再利用できるようにしています。

  1. キャッシュされたデータを基に、ビューテンプレートにレンダリングします。たとえば、
@foreach($posts as $post)
    <div>{{ $post->title }}</div>
    <!-- 其他内容 -->
@endforeach

{{ $posts->links() }} <!-- 显示分页链接 -->

上記のコードでは、foreachループを使用してデータを読み込み、$posts->links()メソッドでページネーションのリンクを表示しています。

上記の手順を踏むことで、ページングデータを静的化してキャッシュに格納することができ、静的化の効果が得られます。同一ページへのアクセス時には、毎回ページングクエリを再実行することなく、キャッシュから直接データを読み出すようになります。これによりデータベースの負荷を軽減し、サイトのパフォーマンスを向上させることができます。

bannerAds