ホームページ  >  記事  >  バックエンド開発  >  thinkphp による配列ページングの実装 example_PHP チュートリアル

thinkphp による配列ページングの実装 example_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:32:53839ブラウズ

ページングは​​ 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 メソッドを使用するコードは次のようになります:

コードをコピーします コードは次のとおりです:

$User = M('User') // User オブジェクトをインスタンス化します;

$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(); // 出力テンプレート


基本的な考え方は、最初にレコードの総数を計算し、次に各ページに表示されるレコードの設定数に従ってページを分割することです。 Thinkphp によってカプセル化された Page クラスを使用して簡単に実装できます。この実装の焦点は 11 行目です。limit メソッドは、特定のルールに従ってクエリ データからデータを抽出します。しかし、データが持ち出されてしまった場合はどうすればよいでしょうか?

PHPに付属の関数array_slice()を使用しました。定義はここにあります: http://www.php.net/manual/en/function.array-slice.php

実際、これはlimitメソッドの配列バージョンです。さて、ツールが見つかったので、実装は簡単です。コードに直接移動します:

コードをコピーします コードは次のとおりです:
public function nodeslist(){
$portal = new PortalApi;
$nodelist = $portal->getNodeLists($this->uid);

$count = count($nodelist['data']);
$p = 新しいページ($count,10);
$lists = array_slice($nodelist['data'], $p->firstRow, $p-> ;listRows);
$page = $p->show();
$this->assign('page',$page);
$this->assign('nodes',$リスト);
$this->display();
}

コードは削除され、実装の詳細のみが保持されます。

3 行目で、getNodeLists メソッドはデータベースからデータを取得し、それを配列ノードリストに割り当てます。

5行目のcountは配列要素の数を計算します。

6 行目はパラメータを Page クラスに渡します。

7行目のarray_slice関数はlimitメソッドを置き換えます。原理は同じです。

9行目は、assignメソッドを使用してテンプレートに値を割り当てます。定義はここにあります: http://document.thinkphp.cn/manual_3_2.html#assign

10行目も同様です。

ビュー内のコードは次のとおりです:

コードをコピーします コードは次のとおりです:

{$page}


これが唯一の方法である場合、表示される効果は友好的ではありません。次に、Page クラスの定義を確認します。

コードをコピーします コードは次のとおりです:
//ページ表示のカスタマイズ
private $config= array(

'header' => '合計 %TOTAL_ROW% レコード',

'prev' => '前のページ',

'次へ' => '次のページ',

'first'=> '最初のページ',

'last' => '...%TOTAL_PAGE%',

'テーマ'=> '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',


ページ番号の前後にスペースを追加します。これで効果がわかります:

thinkphp による配列ページングの実装 example_PHP チュートリアル

もちろん、状況に応じてさまざまな効果を設定できます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/754033.html技術記事 thinkphp フレームワークの下でページングを実装します。会社の Web サイトは Thinkphp フレームワークに基づいています。thinkphp については以前から聞いていましたが、ついにそれを実践する機会を得ました。 thinkphp は MVC アーキテクチャに基づいています。MVC はあらゆる ITe に適しています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。