`

Zend_Paginator分页

    博客分类:
  • php
 
阅读更多

 

实例化一个分页类,$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中计算(几千万数据就傻了),所以应该使用

 

  1. $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null(/**数量*/);  
  2.         $paginator->setItemCountPerPage($pageSize)  
  3.                                   ->setCurrentPageNumber($pageId)  
  4.                                   ->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

分享到:
评论

相关推荐

    zendframework 分页实现

    本篇文章将深入探讨如何在Zend Framework中利用`Zend_Paginator`组件实现高效的数据库查询分页。 `Zend_Paginator`是Zend Framework的一个核心组件,它的主要功能是帮助开发者在大量数据中创建用户友好的分页界面。...

    zendframework留言分页

    - `Zend_Paginator`允许开发者根据数据源(如查询结果)创建分页对象,并提供简单的API来获取当前页的数据以及页码导航。 4. **数据查询与分页结合**: - 在`library`目录下,可能包含自定义的Model类,用于处理...

    zf框架的zend_cache缓存使用方法(zend框架)

    - **DB 分页**:`Zend_Paginator` 可与 `Zend_Cache` 结合,对数据库查询结果进行分页缓存。 - **数据库追踪**:`Zend_Db_Table` 提供了追踪功能,可以记录对数据库的更改,适用于审计或回滚操作。 - **校验器 In...

    php zendframework 常用代码

    - **Zend_Paginator::factory**: 创建一个分页器实例,传入数据集合。 - **setCurrentPageNumber**: 设置当前页码。 - **setItemCountPerPage**: 设置每页显示的数据条数。 - **$this-&gt;view-&gt;paginator**: 将分页器...

    zend 框架手册介绍

    - **Zend_Paginator**:分页显示数据。 **3.2 使用指南** 对于每个组件,开发者都可以通过查阅官方文档来详细了解其功能和用法。此外,社区论坛和博客也是获取实践经验和技巧的好地方。 总结起来,**Zend ...

    Zend Framework分页类用法详解

    【Zend Framework分页类用法详解】 在Web开发中,分页是常见的一种功能,用于处理大量数据的显示,提高用户体验。在使用Zend Framework进行PHP开发时,我们可以自定义分页类来实现这一功能。本篇文章将深入讲解如何...

    Zend Framework实现留言本分页功能(附demo源码下载)

    这里的分页功能运用了..Zend_Paginator这个组件来实现留言本分页…这里我也是参考PHPCHINA里一位PHPer写的这方面的教程 我实现的坏境以及项目的目录安排是在第三篇教程的基础上写的..如果有朋友不明白目录什么的安排...

    zend-framework-3-cookbook.pdf

    3. 数据分页:介绍了zend-paginator组件,它提供了数据集分页的功能,这对于Web开发中处理大量数据时保持良好的用户体验至关重要。 4. 日志和信息订阅:本书会教导如何使用zend-log来记录PHP应用程序的日志,以及...

    zend framework2例子album 完整能运行

    例如,`Form`助手可以方便地渲染表单元素,`Paginator`助手用于分页显示数据。 8. **配置管理**:所有配置信息,包括模块配置、路由、数据库连接等,都被集中管理在`config`目录下。这种集中式配置使得项目更加灵活...

    ZendFramework2连接数据库操作实例

    另外,zend-db还提供了分页工具,通过创建Select对象和ResultSet以及Paginator适配器,可以方便地实现数据库查询结果的分页显示,这在处理大量数据时尤为重要。 在使用zend-db时还应注意以下几点: 1. 确保配置文件...

    PHP系统框架zendframe实例图书管理系统

    使用`Zend\Paginator`进行分页,提高用户体验。 通过这个“图书管理系统”,初学者可以深入理解 ZendFrame 的核心概念和使用方式,进一步提升PHP开发技能。同时,该实例也为有经验的开发者提供了实践和优化框架应用...

    mq-util:ZF2 Viewhelpers

    mq-util ZF2控制器和视图中使用的基本实用程序。 Zend Framework 2 View助手less()将LESS文件转换... MQUtil \ Service \ Paginator 超级简单易用的分页类MQUtil \ Service \ Iterator 带有prevItem支持的超级简单易

    KapitchiEntity

    Zend Framework 2 - Kapitchi 实体模块 版本: 0.1-dev 网站: : 演示: : 版权所有: README.md 状态:不完整 执照 介绍 一组通用类/接口,用于提供通用实体 API 和事件触发 - 用于工作和管理实体的服务、映射器...

Global site tag (gtag.js) - Google Analytics