Pagination(分页)使用说明

DoitPHP扩展类Pagination用于处理页面的分页。

类方法使用说明

1、total($totalNum = null)

|设置总列表数
|参数说明:
|$totalNum : 总列表数

2、url($url = null)

|设置分页跳转的网址
|参数说明:
|$url : 分页跳转的网址

3、page($page = null)

|设置当前的页数
|参数说明:
|$page : 当前的页数

4、num($num = null)

|设置每页显示的列表数
|参数说明:
|$num : 每页显示的列表数

5、getArray()

|输出分页数组
|参数说明:
|参数为空

6、center($num)

|设置分页列表的重心,本方法不常用
|参数说明:
|$num : 分页列表重心(即:页数)

7、circle($num)

|设置分页列表的列表数,默认为10。
|参数说明:
|$num : 分页列表的列表数

8、hide($item = true)

|开启分页的隐藏功能,即:当分页只有一页时,分页是不显示的。只有当分页数大于1时,才有数据显示。
|参数说明:
|$item : 隐藏开关 , 默认为true

使用举例

例一、常用实例

Controller文件代码如下:

  1. public function indexAction() {
  2.  
  3. $page = $this->get('page', 1);
  4. $linkUrl = $this->getSelfUrl() . '/?page=';
  5.  
  6. $pagerObj = $this->instance('Pagination');
  7. $pageList = $pagerObj->total(100)->num(10)->page($page)->url($linkUrl)
  8. ->getArray();
  9.  
  10. $this->assign('pager', $pageList);
  11.  
  12. $this->display();
  13. }

视图文件代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>分页演示</title>
  6. </head>
  7.  
  8. <body>
  9. <!-- 分页 -->
  10. <?php if(is_array($pager) && $pager) { ?>
  11. <ul class="pager">
  12. <?php foreach($pager['page_list'] as $row) { ?>
  13. <?php if($row['is_current']== 1) { ?>
  14. <li class="active"><span><?php echo $row['page_number']; ?></span></li>
  15. <?php } else { ?>
  16. <li><a href="<?php echo $row['page_url']; ?>"><?php echo $row['page_number']; ?></a></li>
  17. <?php } ?>
  18. <?php } ?>
  19. <li><a href="#">下一页</a></li>
  20. </ul>
  21. <?php } ?>
  22. <!-- /分页 -->
  23. </body>
  24. </html>

附:将Controller代码的$pageList变量如果进行$this->dump($pageList);, 就会知道这个变量的数组结构如下:

  1. Array
  2. (
  3. [num_items] => 60
  4. [per_page] => 20
  5. [num_pages] => 3
  6. [page] => 3
  7. [is_previous] => 1
  8. [first_page] => Array
  9. (
  10. [page_number] => 第一页
  11. [page_url] => /member/list/?page=1
  12. )
  13. [previous_page] => Array
  14. (
  15. [page_number] => 上一页
  16. [page_url] => /member/list/?page=2
  17. )
  18. [is_next] => 0
  19. [page_list] => Array
  20. (
  21. [1] => Array
  22. (
  23. [page_number] => 1
  24. [is_current] => 0
  25. [page_url] => /member/list/?page=1
  26. )
  27. [2] => Array
  28. (
  29. [page_number] => 2
  30. [is_current] => 0
  31. [page_url] => /member/list/?page=2
  32. )
  33. [3] => Array
  34. (
  35. [page_number] => 3
  36. [is_current] => 1
  37. [page_url] => /member/list/?page=3
  38. )
  39. )
  40. )

下面就将此数组字段信息说明一下:

注:为了便于在视图文件中调用,数组字段均统一为小写字母+下划线组合。

num_items:信息列表总数,per_page:每页显示的信息列表数,num_pages:共多少页,page:当前页,is_previous:是否存在上一页(是:1/否:0) is_next:是否存在下一页(是:1/否:0) first_page:第一页,previous_page:上一页,next_page:下一页,last_page:最后一页,page_list:分页列表(如:1, 2, 3…),is_current:是否为当前页,(是:1/否:0)page_number:分页列表的页数,page_url:分页列表内容的链接。

有了上面这些信息,在处理视图文件内容的分页部分(进行变量赋值),就游刃有余了。

原文: http://www.doitphp.com/index/documentation/?articleid=31