ページングは thinkphp フレームワークの下で実装されます。会社の Web サイトは Thinkphp フレームワークに基づいています。thinkphp については以前から聞いていましたが、ついにそれを実践する機会を得ました。 thinkphp は MVC アーキテクチャに基づいています。MVC は、IT 担当者なら誰でもよく知っているモデル、ビュー、コントローラーです。ロジックとデータを別々に処理するため、多くの面倒なプロセスが不要になります。実はページネーションの方法は公式情報、ポータル: http://document.thinkphp.cn/manual_3_2.html#data_page
で詳しく紹介されていますが、DBからデータを取り出した場合には適用されず、この場合、私は丸 2 か月間 PHP を使用していましたが、thinkphp を使用したのはわずか 3 週間です。 thinkphp に慣れるために、公式ドキュメントに多くの時間を費やしました。剣を研ぎ、薪を割る労働者とみなすことができます。ここでは公式ドキュメントを比較として説明します:
(ドキュメント内の最初のメソッドのみが引用されています): Page クラスと limit メソッドを使用するコードは次のようになります:
$count= $User->where('status=1')->count();// 要件を満たすレコードの総数をクエリします
$Page = new ThinkPage($count,25); // ページング クラスをインスタンス化し、レコードの総数と各ページに表示されるレコードの数を渡します (25)
$show = $Page->show() // ページングで出力を表示します
;// ページング データ クエリを実行します。limit メソッドのパラメーターは Page クラスの属性を使用する必要があることに注意してください。
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)- >select();$this->assign('list',$list);//データセットを割り当てる
$this->assign('page',$show);//ページング出力を割り当てます
$this->display(); // 出力テンプレート
PHPに付属の関数array_slice()を使用しました。定義はここにあります: http://www.php.net/manual/en/function.array-slice.php
実際、これはlimitメソッドの配列バージョンです。さて、ツールが見つかったので、実装は簡単です。コードに直接移動します:
3 行目で、getNodeLists メソッドはデータベースからデータを取得し、それを配列ノードリストに割り当てます。
5行目のcountは配列要素の数を計算します。
6 行目はパラメータを Page クラスに渡します。
7行目のarray_slice関数はlimitメソッドを置き換えます。原理は同じです。
9行目は、assignメソッドを使用してテンプレートに値を割り当てます。定義はここにあります: http://document.thinkphp.cn/manual_3_2.html#assign
10行目も同様です。
ビュー内のコードは次のとおりです:
'header' => '合計 %TOTAL_ROW% レコード',
'prev' => '前のページ',
'次へ' => '次のページ',
'first'=> '最初のページ',
'last' => '...%TOTAL_PAGE%',
'テーマ'=> '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',
ページ番号の前後にスペースを追加します。これで効果がわかります:
もちろん、状況に応じてさまざまな効果を設定できます。