ThinkPHP データ ページング Page.class.php
ページネーションクラスを取得する
ThinkPHP は、データ ページング用の拡張クラス ライブラリ Page を提供します。これは http://www.thinkphp.cn/extend/241.html からダウンロードできます。または、公式の完全な拡張パッケージ (http://www.thinkphp.cn/) をダウンロードできます。 down/253.html) には、ページング拡張クラスも含まれています。解凍した Page.class.php を ThinkPHP/Extend/Library/ORG/Util/ ディレクトリー (存在しない場合は手動で作成してください) に配置します。
もちろん、拡張クラス ライブラリの場所は実際にはより任意であり、プロジェクトのクラス ライブラリ ディレクトリに置くこともできます。違いはインポート パスだけです。
ページ分割されたクエリ
ページング クラスはクエリと組み合わせる必要があります。現在のページング データを取得するために、limit メソッドまたは page メソッドを使用できます (最初に完全なデータを取得してから表示する方法もあります)。これはフロントエンド ページングで行われますが、これについてはこの記事や提案では説明しません)。制限メソッドまたはページメソッドの使用は、データベースの種類とは関係ありません。
まず、テスト用にデータベースに think_data データ テーブルを作成します。
りー
コードをコピーする
ページング クエリを使用するには、一般に 2 つのクエリが必要です。つまり、最初のクエリは条件を満たすデータの総量を取得することであり、2 番目のクエリは現在のページング データをクエリすることです。生成されたページの合計数を計算するために、ページング クラスに現在のデータの合計数を伝えます (表示がページアップとページダウンのみを必要とする場合は、合計クエリを省略またはキャッシュできます)。
標準的なページングの使用例は次のとおりです:
りー
コードをコピーする
データがない場合、ページネーションは空白になります。したがって、テストする前に、データ テーブルに特定のデータがあることを確認してください。そうしないと、ページング効果が見られない可能性があります。 page メソッドを使用してクエリを実行する場合は、
に変更できます。
りー
コードをコピーする
その後、ページング出力変数をテンプレートに追加できます
りー
コードをコピーする
ページング出力では、テンプレートでの出力に {$page} 変数を使用するだけでよいことがわかります。
ページネーションの設定
ページネーション変数を設定する
デフォルトでは、ページングで渡される変数は p で、生成されるページング ジャンプ アドレスは次のようになります:
-
http://サーバー名/index.php/Data/index/p/1
-
http://サーバー名/index.php/Data/index/p/2
コードをコピーする
VAR_PAGE 設定パラメータを変更するように設定できます:
-
'VAR_PAGE'=>'ページ'
コードをコピーする
この場合、ページング アドレスは次のようになります:
-
http://サーバー名/index.php/Data/index/page/1
-
http://サーバー名/index.php/Data/index/page/1
コードをコピーする
ページごとのレコード数を設定します
デフォルトでは、ページング表示の各ページには 20 個のデータが表示されます。各ページに表示されるデータの量を変更したい場合は、ページング クラスをインスタンス化するときに 2 番目のパラメーターを渡すことができます。
$Page = new Page($count,5);// ページング クラスをインスタンス化し、レコードの総数を渡し、ページごとに 5 つのレコードを表示します
コードをコピーする
$Page->listRows属性はクエリメソッド内で使用するので変更する必要はありませんが、クエリメソッド内で数値を直接使用する場合は忘れずに一緒に変更してください。 -
以下は、公式ページングの例の表示効果です:
ページネーション条件を渡す
デフォルトでは、ページング クラスは、ページング ジャンプに渡された値として現在のページの POST (最初) または GET 変数を自動的に取得します。現在のページング ジャンプのパラメーターを指定する必要がある場合は、パラメーター属性を設定できます。パラメーター属性は、文字列と配列の 3 つの方法で 2 つのパス値をサポートします。文字列は var1=val1&var2=val2... の形式を採用します。例:
foreach($map as $key=>$val) {-
$Page->parameter .= "$key=".urlencode($val).'&';
-
}
コードをコピーする
または、配列を直接渡します:
-
$Page->parameter = array_map('urlencode',$map);
コードをコピーする
U 関数は内部で呼び出されるため、ページング クラスによって最終的に生成されるページング ジャンプ リンクは、現在の URL 設定に基づいて現在の URL パターンと一致するアドレスを自動的に生成するため、ページング リンクのパラメータを心配する必要はありません。 URL アドレスに影響します。
-
ページネーションルーティングのサポート
ページング ジャンプ リンク アドレスでルーティングを使用する場合、URL パラメーターを設定できます。たとえば、ページング URL アドレス形式が次のようになっているとします。
http://サーバー名/data/index/1
http://サーバー名/data/index/2-
http://サーバー名/data/index/3
コードをコピーする
このような URL ルーティング アドレスを設定できます
-
-
$Page->url = 'データ/インデックス';
コードをコピーする
設定後、ページングクラスのリンクアドレスは上記のURL形式のアドレスを自動生成します。
なお、urlパラメータとパラメータを同時に使用した場合、後者は無効となります。
-
表示ページ数を設定します
ページング クラスをインスタンス化した後に、関連するプロパティを設定できます。デフォルトでは、ページに表示されるページ数は 5 ですが、変更できます:
$ページ->ロールページ = 3;
コードをコピーする
この方法では、ページ上で同時に 3 ページネーションのみを表示できます
-
ページネーション表示のカスタマイズ
以上はページングのパラメータ設定についてでしたが、次にページングの表示効果(スタイルも含む)の設定方法について説明します。デフォルトのページング効果は、すべての要件を満たしていない場合があります。ページング クラスには、一部のデフォルト設定を変更するための setConfig メソッドが用意されています。例:
-
$page->setConfig('ヘッダー','メンバー');
コードをコピーする
setConfig メソッドでサポートされるプロパティには次のものがあります。
ヘッダー |
ヘッダー説明情報、デフォルト値「records」 |
前 |
前のページの説明情報、デフォルト値は「前のページ」です |
次 |
次のページの説明情報、デフォルト値は「次のページ」です |
まずは |
最初のページの説明情報、デフォルト値は「最初のページ」です |
最後 |
最後のページの説明情報、デフォルト値は「最後のページ」です |
テーマ |
上記のすべての要素の組み合わせを含むページネーション テーマの説明情報。この属性を設定すると、ページングの各単位の表示位置が変更されます。デフォルト値は です。
"%totalRow% %header% %nowPage%/%totalPage% ページ %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%" |
setConfig を通じて上記のプロパティを設定すると、ページングの表示スタイルを完全にカスタマイズできます。
http://www.bkjia.com/PHPjc/847866.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/847866.html技術記事 ThinkPHP データ ページング Page.class.php は、ページング クラスを取得します。 ThinkPHP は、データ ページング用の拡張クラス ライブラリである Page を提供します。これは、http://www.thinkphp.cn/extend/241.html からダウンロードするか、公式完全版をダウンロードできます。 ...