ThinkPHP6 を使用してデータベース ページングを実装する方法

王林
リリース: 2023-06-20 12:30:10
オリジナル
1900 人が閲覧しました

Web テクノロジーの開発と普及に伴い、大量のデータをより適切に表示するためにデータベース ページング テクノロジーを使用する Web サイトがますます増えています。一般的に使用される PHP フレームワークとして、ThinkPHP は当然のことながら、対応するデータベース ページング拡張機能をリリースしました。この記事では、ThinkPHP6 を使用してデータベース ページングを実装する方法を紹介します。

1. ThinkPHP の Paginator クラス

まず、ThinkPHP6 の Paginator クラスを理解する必要があります。 Paginator クラスは ThinkPHP6 に付属するページング ツール クラスで、データ ページング機能を簡単に実装でき、大量のデータをより便利に処理できます。

Paginator クラスには、次のような多くの実用的なメソッドが用意されています。

  1. getCurrentPage: 現在のページ番号を取得します。
  2. getPageName: 「page」のパラメータ名を取得します。
  3. getTotal: データの総数を取得します。
  4. getListRows: 各ページに表示されるデータの数を取得します。
  5. getLastPage: 最後のページのページ番号を取得します。
  6. hasPages: 複数のページがあるかどうかを判断します。

Paginator クラスによって提供されるこれらのメソッドを使用して、必要に応じてデータ ページング機能を実装できます。

2. ThinkPHP6 を使用してデータベース ページングを実装する

簡単な使用例を見てみましょう。 Web サイトに製品の大規模なリストを表示する必要があり、これらの製品をページに表示する必要があるとします。

まず、次のコードをコントローラーに追加する必要があります:

use think acadeDb;
use think acadeRequest;
use think acadeView;
use thinkpaginatordriverBootstrap;

public functionindex()
{

$currentPage = Request::param('page', 1); $products = Db::table('product')->paginate(10, false, ['page' => $currentPage]); $page = $products->render(); View::assign('products', $products); View::assign('page', $page); return View::fetch();
ログイン後にコピー

}

上記のコードでは、最初に ThinkPHP6 の Db クラスと Request クラスを導入し、ページネータ クラス。 Index メソッドでは、まず現在のページ番号を取得し、次に Db クラスを使用してデータベースにクエリを実行して製品リストを取得し、Paginator クラスの paginate メソッドを使用して製品リストをページ分割します。 paginate メソッドの最初のパラメータは、各ページに表示されるデータ項目の数です。2 番目のパラメータは、単純なスタイルの変更が必要ないことを示すために false に設定されます。3 番目のパラメータは、ページ番号の数を設定するために使用される連想配列です。そしてその背景。

次に、Paginator クラスの render メソッドを使用してページング HTML コードを取得し、ページング データとページング HTML コードをテンプレートに渡し、最後にテンプレートに製品リストとページング ナビゲーションを表示します。テンプレート コードは次のとおりです:

{% foreach $products as $product %}

ログイン後にコピー

{% endforeach %}