ホームページ  >  記事  >  バックエンド開発  >  thinkphpのページングメソッドと実装コード

thinkphpのページングメソッドと実装コード

WBOY
WBOYオリジナル
2016-07-25 08:52:24925ブラウズ
  1. /**
  2. * TODO 基本ページングと同じコードのカプセル化により、フロントエンド コードが少なくなります
  3. * @param $m モデル、参照によって渡されます
  4. * @param $where クエリ条件
  5. * @param int $pagesize ページごとのクエリ数
  6. * @return ThinkPage
  7. */
  8. function getpage(&$m,$where,$pagesize=10){
  9. $m1=clone $m;//モデルのシャローコピー
  10. $count = $m ->where($where)->count();//連続操作後、結合などの操作はリセットされます
  11. $m=$m1;//一定の連続操作を維持するために、Aモデルを浅くコピーします
  12. $p=new ThinkPage($count,$pagesize);
  13. $p->lastSuffix=false;
  14. $p->setConfig('header','
  15. 合計 ページあたりのレコード数%LIST_ROW% TOTAL_PAGE%ページ
  16. ');
  17. $p->setConfig('prev', '前のページ');
  18. $p->setConfig('次','次のページ');
  19. $p->setConfig('最後の','最後のページ');
  20. $p->setConfig( 'first','first page');
  21. $p->setConfig('theme' ,'%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
  22. $p->パラメータ=I('get.');
  23. $m->limit($p- >firstRow,$p->listRows);
  24. return $p;
  25. }
コードをコピー

getpageメソッドは、TP フレームワークの Application/Common/Common/function.php に配置できます。このドキュメントには、どこでも呼び出すことができるいくつかの共通メソッド (コントローラー ファイル、ビュー ファイルなど) を特別に配置できます。

2. ページングメソッドを呼び出す

  1. $m=M('products');
  2. $p=getpage($m,$where,10);
  3. $list=$m->field(true)->where($ where)->order('id desc')->select();
  4. $this->>list=$list;
  5. $this->page=$p->show();
  6. これはコードを表示
  7. {$page}
  • コードをコピー

    3.

    1. .pagination ul {
    2. display: inline-block;
    3. margin-bottom: 0;
    4. margin-left: 0;
    5. -webkit-border-radius: 3px;
    6. -moz-border-radius: 3px ;
    7. border-radius: 3px;
    8. -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    9. -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05) ) );
    10. box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    11. }
    12. .pagination ul li {
    13. 表示: インライン;
    14. }
    15. .pagination ul li.rows {
    16. line-height: 30px ;
    17. padding-left: 5px;
    18. }
    19. .pagination ul li.rows b{color: #f00}
    20. .pagination ul li a, .pagination ul li spa {
    21. float: left;
    22. padding: 4px 12px;
    23. line-height: 20px;
    24. text-decoration: none;
    25. background-color: #fff;
    26. background: url('../images/bottom_bg.png') 0px 0px;
    27. border: 1pxソリッド #d3dbde;
    28. / * border-left-width: 0;*/
    29. margin-left: 2px;
    30. color: #08c;
    31. }
    32. .pagination ul li a:hover{
    33. color: red;
    34. background: #0088cc;
    35. }
    36. 。 pagination ul li.first-child a, .pagination ul li.first-child span {
    37. border-left-width: 1px;
    38. -webkit-border-bottom-left-radius: 3px;
    39. border-bottom-left-radius : 3px;
    40. -webkit-border-top-left-radius: 3px;
    41. border-top-left-radius: 3px;
    42. -moz-border-radius-bottomleft: 3px;
    43. -moz-border-radius-topleft: 3px ;
    44. }
    45. .pagination ul .disabled span、.pagination ul .disabled a、.pagination ul .disabled a:hover {
    46. color: #999;
    47. cursor:default;
    48. background-color:transparent;
    49. }
    50. 。 pagination ul .active a, .pagination ul .active spag {
    51. color: #999;
    52. cursor:default;
    53. }
    54. .pagination ul li a:hover, .pagination ul .active a, .pagination ul .active spa {
    55. 背景 -色: #f0c040;
    56. }
    57. .pagination ul li.last-child a, .pagination ul li.last-child スパン {
    58. -webkit-border-top-right-radius: 3px;
    59. border-top-right - 半径: 3px;
    60. -webkit-border-bottom-right-radius: 3px;
    61. border-bottom-right-radius: 3px;
    62. -moz-border-radius-topright: 3px;
    63. -moz-border-radius- bottomright : 3px;
    64. }
    65. .pagination ul li.current a{color: #f00;font-weight:大胆; 背景: #ddd}
    コードをコピー


    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。