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

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