Laravel は、多くの最新機能と開発に適したツールを提供する人気の PHP 開発フレームワークで、開発者が Web サイトやアプリケーションをより効率的に構築できるようにします。 Webアプリケーションを開発する過程で、クエリ結果をページに表示する必要が生じることがありますが、この記事ではLaravelを使ってページング機能を実装する方法を紹介します。
1. ページングの概要
ページングとは、大量のデータを複数のページに分割して表示する方法のことで、通常は各ページに何件のデータを表示するかを設定します。この値を超えると自動的にページがめくられます。このアプローチにより、ページの読み込み時間と帯域幅の使用量が大幅に削減され、ユーザーはデータの表示と移動が容易になります。
2. Laravel のページング操作
Laravel は、ページング関数を実装するための Paginator クラスを提供します。ページング インスタンスを取得するには、クエリ結果オブジェクトを Paginator の make メソッドに渡し、各ページに表示するデータの量を指定します。インスタンスで render メソッドを呼び出すと、Laravel がページネーション リンクを自動的に生成できます。
具体的なコードの実装を見てみましょう。
次のコマンドを実行して Laravel をインストールします:
composer create-project --prefer-dist laravel/laravel blog
データベース テーブルの記事を作成し、サンプル データを挿入します。
CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `body` text COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 1', 'This is article 1 content', '2021-01-01 12:00:00', '2021-01-01 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 2', 'This is article 2 content', '2021-01-02 12:00:00', '2021-01-02 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 3', 'This is article 3 content', '2021-01-03 12:00:00', '2021-01-03 12:00:00'); INSERT INTO `articles` (`title`, `body`, `created_at`, `updated_at`) VALUES ('Article 4', 'This is article 4 content', '2021-01-04 12:00:00', '2021-01-04 12:00:00');
app/Models ディレクトリに Article.php ファイルを作成し、次の内容を追加します。 code:
created_at->format('Y-m-d'); } }
app/Http/ControllersディレクトリにArticlesController.phpファイルを作成し、次のコードを追加します:
ログイン後にコピー
resources/views ディレクトリに記事ディレクトリを作成し、このディレクトリにindex.blade.php ファイルを作成して、次のコードを追加します:
@extends('layouts.app') @section('content')@endsection@foreach($articles as $article)@endforeach {{ $articles->links() }}{{ $article->title }}{{ $article->body }}
分析:
public/css ディレクトリに app.css ファイルを作成し、次のコードを追加します:
.card { margin-bottom: 20px; } .pagination { margin-top: 20px; }
In /views/layouts ディレクトリのファイル app.blade.php に、次のコードを追加します。
分析:
http://127.0.0.1:8000/articles にアクセスすると、記事リストが表示されていることがわかります。ページング リンクを通じて複数のページを切り替えることができます。
ここで注意する必要があるのは、コントローラーで paginate メソッドを呼び出すときに渡されるパラメーター 2 は、ページに表示されるデータの数を表すということです。この値が小さすぎると、 、ページング リンクが多くなり、ページが混乱します。この値が大きすぎると、ページに表示されるデータ量が非常に多くなり、リクエストが長時間ブロックされ、ページを開く速度に影響します。 、メモリオーバーフローなどの問題も発生するため、実際の状況に基づいて慎重に設定されています。
3. 概要
Laravel は、ページング機能を実装するための強力な Paginator クラスを提供しており、少ないコードで簡単に実装できます。この記事では、Paginator を使用して MySQL データベースのデータをページに表示する方法を紹介します。また、ページ分割された結果でモデル プロパティを使用する方法も示しました。 Web サイトやアプリケーションの開発時に大量のデータを表示する必要がある場合、ページングは不可欠な機能であり、ユーザー エクスペリエンスを大幅に向上させるだけでなく、サーバーのオーバーヘッドを効果的に削減できます。
以上がLaravelを使ったページング機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。