6.3 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文件代码如下:
public function indexAction() {
$page = $this->get('page', 1);
$linkUrl = $this->getSelfUrl() . '/?page=';
$pagerObj = $this->instance('Pagination');
$pageList = $pagerObj->total(100)->num(10)->page($page)->url($linkUrl)
->getArray();
$this->assign('pager', $pageList);
$this->display();
}
视图文件代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>分页演示</title>
</head>
<body>
<!-- 分页 -->
<?php if(is_array($pager) && $pager) { ?>
<ul class="pager">
<?php foreach($pager['page_list'] as $row) { ?>
<?php if($row['is_current']== 1) { ?>
<li class="active"><span><?php echo $row['page_number']; ?></span></li>
<?php } else { ?>
<li><a href="<?php echo $row['page_url']; ?>"><?php echo $row['page_number']; ?></a></li>
<?php } ?>
<?php } ?>
<li><a href="#">下一页</a></li>
</ul>
<?php } ?>
<!-- /分页 -->
</body>
</html>
附:将Controller代码的$pageList变量如果进行$this->dump($pageList);, 就会知道这个变量的数组结构如下:
Array
(
[num_items] => 60
[per_page] => 20
[num_pages] => 3
[page] => 3
[is_previous] => 1
[first_page] => Array
(
[page_number] => 第一页
[page_url] => /member/list/?page=1
)
[previous_page] => Array
(
[page_number] => 上一页
[page_url] => /member/list/?page=2
)
[is_next] => 0
[page_list] => Array
(
[1] => Array
(
[page_number] => 1
[is_current] => 0
[page_url] => /member/list/?page=1
)
[2] => Array
(
[page_number] => 2
[is_current] => 0
[page_url] => /member/list/?page=2
)
[3] => Array
(
[page_number] => 3
[is_current] => 1
[page_url] => /member/list/?page=3
)
)
)
下面就将此数组字段信息说明一下:
注:为了便于在视图文件中调用,数组字段均统一为小写字母+下划线组合。
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:分页列表内容的链接。
有了上面这些信息,在处理视图文件内容的分页部分(进行变量赋值),就游刃有余了。