当前位置: 首页 > 文档资料 > DoitPHP 帮助文档 >

6.3 Pagination(分页)使用说明

优质
小牛编辑
125浏览
2023-12-01

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:分页列表内容的链接。

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