CakePHP中paginate是一个处理分页数据的函数.
配合helper(有关信息请关注后续文章)里的Paginator方法,可以很容易的做出分页列表页面.
首先:覆盖paginate变量,paginate变量的绍介请看前一篇(
CakePHP开发之控制器-Controller).
它包含了条件,排序,分组,限制,表间关系等等...
如:
$this->paginate = array('conditions'=>array('`Blog`.`user_id`'=>$user_id,'`Blog`.`status`'=>1),
'order' =>array('`Blog`.`modified`' => 'DESC'),
'limit' => 10
);
它将显示user_id为$user_id,状态为1,的所有blog记录,且每页显示10条.
接下来,我们应该注意一些细节:如,您可能想让Blog的某些关联Model在此刻取消,那么,Model如何解除关联(unbind)呢?
我注意到,通常的在find方法里很有用的unbind方法并不起作用,
$this->Blog->unbind(array('belongsTo'=>array('BlogClass')));
原因是在find里在得到数据后,find会用model->resetAssociations();
把所有关联(Association)还原.
而paginate函数使用了两次find:一次是得到总数count,另一次才是得到分页显示的相关数据.
因此,给unbind的第二个参数里赋上'假'值.
如果unbind的第二个参数是true,cakephp会把需要解除关联的数据库保存到 model->__backAssociation里,当运行model->resetAssociations();会从 model->__backAssociation把相关的关联的数据还原.
解决:
$this->Blog->unbind(array('belongsTo'=>array('BlogClass')),false);
最后,在对应的view文件内,采用默认加载的helper变量和方法可以容易的搭建起view框架.
如:
<?php
echo $paginator->first(__('first', true), array(), null);
echo $paginator->prev(__('previous', true), array(), null);
echo $paginator->numbers();
echo $paginator->next(__('next', true), array(), null);
echo $paginator->last(__('last', true), array(), null);?>
注意:如果,你将条件写入了函数调用的参数内,那么,为了与helper相对应,你必须在view声明:如:
$paginator->options(array('url' =>$blogs['Blog']['user_id']));
此段code必须写在view页面的首部.
如果忽略了,那么很遗憾,您的分页显示将出现异常.
分享到:
相关推荐
CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的...
【CakePHP】是一个基于PHP语言的开源Web应用框架,它采用了MVC(Model-View-Controller)架构模式,旨在简化并加速Web应用的开发过程。该框架受到Ruby on Rails的启发,提供了许多预设功能,使得开发者能够在保持...
### CakePHP 3.4 开发手册文档概览 #### CakePHP 一瞥 CakePHP 是一款基于 PHP 的快速开发框架,它强调采用约定优于配置(Convention Over Configuration, CoC)的原则来简化开发过程,使得开发者能够快速构建稳定...
### CakePHP 3.5 开发手册文档概览与核心知识点解析 #### 一、CakePHP简介 **CakePHP** 是一个用 PHP 编写的快速、简洁的开发框架。它采用了 MVC (Model-View-Controller) 架构模式,旨在简化 Web 应用程序的开发...
CakePHP CakePHP是PHP的快速开发框架,它使用Active Record,关联数据映射,Front Controller和MVC等众所周知的设计模式。 我们的主要目标是提供一个结构化的框架,该框架使所有级别PHP用户都可以快速开发健壮的Web...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!
《CakePHP 1.2 手册》是针对该版本框架的重要参考资料,旨在帮助开发者深入理解和有效使用 CakePHP 进行Web开发。 CakePHP 是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它简化了Web应用程序的...
一旦`$paginate`配置就绪,就可以通过调用`Controller::paginate()`方法来获取分页后的数据: ```php $articles = $this->paginate($this->Articles); $this->set(compact('articles')); ``` 此外,`...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!
主要功能有: 1. 小组成员可以查看,发布message 2. 小组成员可以发布新的idea,修改自己发布的idea。 2.1修改不会删除原来的idea,只是将原idea变成oldidea,这样可以看到一个idea是如何从不清晰的意向慢慢演变过来...
CakePHP是一个基于MVC(Model-View-Controller)设计模式的开源PHP框架,它旨在简化Web应用程序的开发过程,提高开发效率。这个压缩包文件包含了有关CakePHP 1.3.11版本的信息,该版本发布于较早的时期,但仍然对...
CakePHP是一款基于Model-View-Controller(MVC)设计模式的开源PHP框架,它简化了Web应用开发过程,提高了开发效率。这份手册包含了从基础概念到高级特性的全方位教程和指南。 手册描述中提到,原始的单页手册可能...
CakePHP是一个广泛使用的开源PHP框架,它基于Model-View-Controller(MVC)架构模式,旨在简化Web应用程序的开发流程,提高开发效率,并且支持快速原型制作。这个框架以其易用性、可扩展性和安全性而受到开发者们的...
CakePHP是一款基于MVC(Model-View-Controller)设计模式的开源PHP框架,它的出现旨在简化Web应用的开发流程,提高开发效率。源码阅读是理解任何框架本质的重要途径,对于CakePHP也不例外。通过对源码的深入剖析,...
- **配置**:讲解了如何配置CakePHP的各种设置,以适应不同的开发场景。 - **路由**:介绍了CakePHP的路由机制,以及如何自定义URL结构。 - **会话**:解释了会话管理的相关概念,以及CakePHP如何处理会话数据。 - *...
CakePHP框架是一个开源的PHP开发框架,它遵循了多种著名的设计模式,包括ActiveRecord(活动记录)、Association Data Mapping(关联数据映射)、Front Controller(前端控制器)和Model-View-Controller(模型-视图...
CakePHP是一款基于MVC(Model-View-Controller)架构的开源PHP开发框架,它旨在简化Web应用程序的构建过程,提高开发效率。这个“CakePHP快速的PHP开发框架官方库”包含的是CakePHP的源代码,版本号为3d44984。下面...
CakePHP 是一个基于MVC(Model-View-Controller)架构的开源PHP框架,它旨在简化Web应用程序的开发,并提高开发效率。 CakePHP 1.2 API 中文文档是针对这个版本的详细技术参考,为开发者提供了丰富的接口信息和使用...
CakePHP是一款基于MVC(Model-View-Controller)设计模式的开源PHP框架,它旨在简化Web应用程序的开发过程,提高开发效率。以下是对 CakePHP 框架的详细阐述: 一、简介 CakePHP 是一个遵循 Model-View-Controller ...