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 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4
CakePHP CakePHP是PHP的快速开发框架,它使用Active Record,关联数据映射,Front Controller和MVC等众所周知的设计模式。 我们的主要目标是提供一个结构化的框架,该框架使所有级别PHP用户都可以快速开发健壮的Web...
CakePHP 3.5 开发手册文档 CakePHP Cookbook Documentation Release 3.5/共900页 PDF
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!
主要功能有: 1. 小组成员可以查看,发布message 2. 小组成员可以发布新的idea,修改自己发布的idea。 2.1修改不会删除原来的idea,只是将原idea变成oldidea,这样可以看到一个idea是如何从不清晰的意向慢慢演变过来...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...
欢迎共同学习?你的关注是我最大的动力???谢谢???
是cakephp框架的内容,用cakephp开发了一个的简单的CMS系统教程。
CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的...
CakePHP 一个开源PHP web 开发框架,PHPMVC结构框架,易与开发,是PHP技术人员的开发好的选择之一!
There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...
This short book shows you how to carry out test-driven development with fixtures, model tests, controller tests, mocks, and test suites. Learn CakePHP contains all you need to get started with the ...
CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的...
cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架
CakePHP 4.0.0 具有更新的应用程序骨架设计,带有简化的 API,使您的开发和应用程序更快。 虽然 4.0 包含许多重大更改,但我们准备了详尽的迁移指南,涵盖所有已弃用和删除的功能以及突出显示闪亮的新功能。 CakeDC...