Laravelを使ったページング機能の実装方法

PHPz
リリース: 2023-04-19 10:38:37
オリジナル
2781 人が閲覧しました

Laravel は、多くの最新機能と開発に適したツールを提供する人気の PHP 開発フレームワークで、開発者が Web サイトやアプリケーションをより効率的に構築できるようにします。 Webアプリケーションを開発する過程で、クエリ結果をページに表示する必要が生じることがありますが、この記事ではLaravelを使ってページング機能を実装する方法を紹介します。

1. ページングの概要

ページングとは、大量のデータを複数のページに分割して表示する方法のことで、通常は各ページに何件のデータを表示するかを設定します。この値を超えると自動的にページがめくられます。このアプローチにより、ページの読み込み時間と帯域幅の使用量が大幅に削減され、ユーザーはデータの表示と移動が容易になります。

2. Laravel のページング操作

Laravel は、ページング関数を実装するための Paginator クラスを提供します。ページング インスタンスを取得するには、クエリ結果オブジェクトを Paginator の make メソッドに渡し、各ページに表示するデータの量を指定します。インスタンスで render メソッドを呼び出すと、Laravel がページネーション リンクを自動的に生成できます。

具体的なコードの実装を見てみましょう。

  1. Laravel のインストール

次のコマンドを実行して Laravel をインストールします:

composer create-project --prefer-dist laravel/laravel blog
ログイン後にコピー
  1. Mysql データベース テーブルの作成

データベース テーブルの記事を作成し、サンプル データを挿入します。

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');
ログイン後にコピー
  1. 記事モデルの定義

app/Models ディレクトリに Article.php ファイルを作成し、次の内容を追加します。 code:

created_at->format('Y-m-d'); } }
ログイン後にコピー
  1. ArticlesControllerの定義

app/Http/ControllersディレクトリにArticlesController.phpファイルを作成し、次のコードを追加します:


        
ログイン後にコピー
  1. 記事ビューの作成

resources/views ディレクトリに記事ディレクトリを作成し、このディレクトリにindex.blade.php ファイルを作成して、次のコードを追加します:

@extends('layouts.app') @section('content') 
@foreach($articles as $article)
{{ $article->title }}

{{ $article->body }}

@endforeach {{ $articles->links() }}
@endsection
ログイン後にコピー

分析:

  • まず、foreach ループで各記事を表示します。
  • $article->title プロパティと $article->body プロパティを使用して、Article モデルから記事のタイトルと本文を取得します。
  • $article->date 属性で記事の公開日を取得します。
  • $articles->links() メソッドを呼び出すと、Laravel がページ分割リンクを自動的に生成します。
  1. ページ スタイルの定義

public/css ディレクトリに app.css ファイルを作成し、次のコードを追加します:

.card { margin-bottom: 20px; } .pagination { margin-top: 20px; }
ログイン後にコピー

In /views/layouts ディレクトリのファイル app.blade.php に、次のコードを追加します。

      {{ config('app.name') }}   
@yield('content')
ログイン後にコピー

分析:

  • Bootstrap4 CSS スタイルを app.blade.php に追加しました。 。
  • Bootstrap 4 の JS ファイルも導入しましたが、Laravel には必要な JS ファイルを public/js/app に自動的にパッケージ化できる Webpack パッケージ化ツールが付属しているため、自分で手動で導入する必要はありません。 .js ファイル。
  1. ページング機能のテスト

http://127.0.0.1:8000/articles にアクセスすると、記事リストが表示されていることがわかります。ページング リンクを通じて複数のページを切り替えることができます。

ここで注意する必要があるのは、コントローラーで paginate メソッドを呼び出すときに渡されるパラメーター 2 は、ページに表示されるデータの数を表すということです。この値が小さすぎると、 、ページング リンクが多くなり、ページが混乱します。この値が大きすぎると、ページに表示されるデータ量が非常に多くなり、リクエストが長時間ブロックされ、ページを開く速度に影響します。 、メモリオーバーフローなどの問題も発生するため、実際の状況に基づいて慎重に設定されています。

3. 概要

Laravel は、ページング機能を実装するための強力な Paginator クラスを提供しており、少ないコードで簡単に実装できます。この記事では、Paginator を使用して MySQL データベースのデータをページに表示する方法を紹介します。また、ページ分割された結果でモデル プロパティを使用する方法も示しました。 Web サイトやアプリケーションの開発時に大量のデータを表示する必要がある場合、ページングは不可欠な機能であり、ユーザー エクスペリエンスを大幅に向上させるだけでなく、サーバーのオーバーヘッドを効果的に削減できます。

以上がLaravelを使ったページング機能の実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!