实例化一个分页类,$array是从数据表内读数据的类方法:
1
|
$paginator = new Zend_Paginator( new Zend_Paginator_Adapter_Array( $array ));
|
设置当前页码:
1
|
$paginator ->setCurrentPageNumber( $page );
|
从URL获取当前页码: (ZF Dream )
1
|
$paginator ->setCurrentPageNumber( $this ->_getParam( 'page' ));
|
把分页内容发到视图:
1
|
$this ->view->paginator = $paginator ;
|
当然视图那里必须有$this->paginator接收,象这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<html>
<body>
<h1>Example</h1>
<?php if ( count ( $this ->paginator)): ?>
<ul>
<?php foreach ( $this ->paginator as $item ): ?>
<li><?php echo $item ; ?></li>
<?php endforeach ; ?>
</ul>
<?php endif ; ?>
<?php echo $this ->paginationControl( $this ->paginator,
'Sliding' , //页码样式
'my_pagination_control.phtml' ); //页码模板?>
</body>
</html>
|
下面是几种页码样式: (ZF Dream )
All:显示所有页;
Elastic:Google式,页码范围会根据用户当前页而扩展或缩小;
Jumping:页码最后页之后会显示第一页;
Sliding:Yahoo式,当前页会放在页码中间,这是默认样式。
当然,paginationControl也可以不在视图中设置,而是写在控制器中:
1
2
3
4
5
6
7
8
9
10
|
Zend_Paginator::setDefaultScrollingStyle( 'Sliding' );
Zend_View_Helper_PaginationControl::setDefaultViewPartial(
'my_pagination_control.phtml'
);
$paginator ->setView( $view );
|
官方手册 提供了几种页码模板的视图写法,偷懒的人可以直接复制过来用:
(1)Search pagination,效果如下:
(2)Item pagination,效果如下:
(3)Dropdown pagination,效果就是个下拉框选页码
下面是页码模板视图中可以使用的一些占位符,你要写自己的页码模板时会有用,写法是$this->first:
值 |
类型 |
解释 |
first |
integer |
第一页的页码 |
firstItemNumber |
integer |
当前页上第一条记录是整个记录集的第几条 |
firstPageInRange |
integer |
第一个显示出的页码(各页码样式不同) |
current |
integer |
当前页码 |
currentItemCount |
integer |
本页上的记录有几条 |
itemCountPerPage |
integer |
每页上最多可以显示几条记录 |
last |
integer |
最后一页的页码 |
lastItemNumber |
integer |
当前页上最后一条记录是整个记录集的第几条 |
lastPageInRange |
integer |
最后一个显示出的页码(各页码样式不同) |
next |
integer |
下一页的页码 |
pageCount |
integer |
一共多少页 |
pagesInRange |
array |
显示在网页上的页码数组(各页码样式不同) |
previous |
integer |
上一页的页码 |
totalItemCount |
integer |
一共有几条记录 |
下面是Paginator类的一些方法: (ZF Dream )
1、设置当前页码(默认是1)
1
|
$paginator ->setCurrentPageNumber( $page );
|
2、设置每页显示的最大数量(默认是10)
1
|
$paginator ->setItemCountPerPage( $num );
|
3、设置页码里显示多少页(默认为10页)
1
|
$paginator ->setPageRange( $page );
|
注意:大多数时候这个数字会有用,但是不同的页码样式会有不同的效果,比如Elastic会把这个数字作为起始值
4、设置视图,方便调用
1
|
$paginator ->setView( $view );
|
这里$view就是当前视图的对象。
×××××××××××××××××××××××××××××××××
zend分页是按照同用sql来设计的(limit不考虑),所以为了提高分页的效率,不应该将这个数组放入zend_paginator的count中计算(几千万数据就傻了),所以应该使用
- $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null(/**数量*/);
- $paginator->setItemCountPerPage($pageSize)
- ->setCurrentPageNumber($pageId)
- ->setPageRange($pageRange);
1.读数据库的count(*)
2.$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null(/**数量*/);
3.按limit读数据库表(即0,10->十条)
4.前台显示
分页是假的 数据也是假的 就能提高读取的速度 提高分页的效率!
摘自:http://zf.is-programmer.com/posts/10846.html
分享到:
相关推荐
本篇文章将深入探讨如何在Zend Framework中利用`Zend_Paginator`组件实现高效的数据库查询分页。 `Zend_Paginator`是Zend Framework的一个核心组件,它的主要功能是帮助开发者在大量数据中创建用户友好的分页界面。...
- `Zend_Paginator`允许开发者根据数据源(如查询结果)创建分页对象,并提供简单的API来获取当前页的数据以及页码导航。 4. **数据查询与分页结合**: - 在`library`目录下,可能包含自定义的Model类,用于处理...
- **DB 分页**:`Zend_Paginator` 可与 `Zend_Cache` 结合,对数据库查询结果进行分页缓存。 - **数据库追踪**:`Zend_Db_Table` 提供了追踪功能,可以记录对数据库的更改,适用于审计或回滚操作。 - **校验器 In...
- **Zend_Paginator::factory**: 创建一个分页器实例,传入数据集合。 - **setCurrentPageNumber**: 设置当前页码。 - **setItemCountPerPage**: 设置每页显示的数据条数。 - **$this->view->paginator**: 将分页器...
- **Zend_Paginator**:分页显示数据。 **3.2 使用指南** 对于每个组件,开发者都可以通过查阅官方文档来详细了解其功能和用法。此外,社区论坛和博客也是获取实践经验和技巧的好地方。 总结起来,**Zend ...
【Zend Framework分页类用法详解】 在Web开发中,分页是常见的一种功能,用于处理大量数据的显示,提高用户体验。在使用Zend Framework进行PHP开发时,我们可以自定义分页类来实现这一功能。本篇文章将深入讲解如何...
这里的分页功能运用了..Zend_Paginator这个组件来实现留言本分页…这里我也是参考PHPCHINA里一位PHPer写的这方面的教程 我实现的坏境以及项目的目录安排是在第三篇教程的基础上写的..如果有朋友不明白目录什么的安排...
3. 数据分页:介绍了zend-paginator组件,它提供了数据集分页的功能,这对于Web开发中处理大量数据时保持良好的用户体验至关重要。 4. 日志和信息订阅:本书会教导如何使用zend-log来记录PHP应用程序的日志,以及...
例如,`Form`助手可以方便地渲染表单元素,`Paginator`助手用于分页显示数据。 8. **配置管理**:所有配置信息,包括模块配置、路由、数据库连接等,都被集中管理在`config`目录下。这种集中式配置使得项目更加灵活...
另外,zend-db还提供了分页工具,通过创建Select对象和ResultSet以及Paginator适配器,可以方便地实现数据库查询结果的分页显示,这在处理大量数据时尤为重要。 在使用zend-db时还应注意以下几点: 1. 确保配置文件...
使用`Zend\Paginator`进行分页,提高用户体验。 通过这个“图书管理系统”,初学者可以深入理解 ZendFrame 的核心概念和使用方式,进一步提升PHP开发技能。同时,该实例也为有经验的开发者提供了实践和优化框架应用...
mq-util ZF2控制器和视图中使用的基本实用程序。 Zend Framework 2 View助手less()将LESS文件转换... MQUtil \ Service \ Paginator 超级简单易用的分页类MQUtil \ Service \ Iterator 带有prevItem支持的超级简单易
Zend Framework 2 - Kapitchi 实体模块 版本: 0.1-dev 网站: : 演示: : 版权所有: README.md 状态:不完整 执照 介绍 一组通用类/接口,用于提供通用实体 API 和事件触发 - 用于工作和管理实体的服务、映射器...