CakePHP Pagination (分頁功能) 加入自己的參數

如果還不知道什麼是 Pagination 或者還不了解如何使用,請參考: CakePHP Pagination (分頁功能) 。

通常在管理後台實作時,常設定許多查詢條件來查詢資料,比如:起始、結束時間。通常這些參數都是用GET的方式在傳遞。以下的範例程式,主要說明如何把GET的參數,融入CakePHP的分頁功能裏面。


Controller:post_controller.php

ContractedBlock.gifExpandedBlockStart.gifCode
class PostController extends AppController {
 
public $name = 'Post';
 
public $uses = null;

 function all() {
 
// 分頁設定
 $this->paginate = array(
 
'fields' => array('Article.id''Article.title''Article.created'), 
 
'limit' => 3
 
'order' => 'Article.created desc'
 );

 
/* 如果有自訂的GET參數,取得到,加到 Controller 的 passedArgs */
 $tmp 
= '';

 
if(isset($_GET['a']) && ($tmp = trim($_GET['a'])) != "")
 $
this->passedArgs['a'= $tmp;
 
if(isset($_GET['b']) && ($tmp = trim($_GET['b'])) != "")
 $
this->passedArgs['b'= $tmp;

 $
this->loadModel("Article");
 
/*$this->Article->recursive = false;*/

 $
this->Article->recursive = 0;

 $
this->set('articles', $this->paginate($this->Article,"Article.user_id='".$this->UserID."'"));

 }
// all

 }
// enc Post
 



View: all.ctp

ContractedBlock.gifExpandedBlockStart.gifCode
<?php
 $args 
= $this->passedArgs;
 unset($args[
'page']); /* 記得要去除 page 參數,否則 CakePHP 會當成一般的參數處理,屆時連結會多出很多page參數 */
 
// 把額外的參數傳給分頁模組
 $paginator->options(
 array(
'url'=>$args));
 $th 
= array($paginator->sort("標題""title"), $paginator->sort("建立時間""created"), "操作");
 echo $html
->tableHeaders($th);

 $size 
= count($articles);
 
for($i = 0; $i < $size; $i++) {
 $tr 
= array($articles[$i]["Article"]["title"], $articles[$i]["Article"]["created"], "<a href='/post/edit/".$articles[$i]["Article"]["id"]."'>編輯</a>");
 echo $html
->tableCells($tr, array("bgcolor"=>"#999999"), array("bgcolor"=>"white"));

 }
// end for
 ?>
 
</table>
 
<center>
 
<?php
 echo $paginator
->first('第一頁'). ' ';
 echo $paginator
->prev('<< 前一頁').' ';
 echo $paginator
->numbers(array('separator'=>' - ')); 
 echo 
' '.$paginator->next('下一頁 >>');
 echo 
' '.$paginator->last("最後一頁");
 
?>
 
<br>
 
<?php
 echo $paginator
->counter(array(
 
'format' => '目前在第 %page% 頁 / 總共 %pages% 頁, 每頁 %current% 筆資料, 總共 %count% 筆, 目前是第 %start% 至 %end% 筆資料'
 )); 
 
?>
 
</center


HTML


ContractedBlock.gifExpandedBlockStart.gifCode
<table border='1' bordercolor='#cccccc' cellspacing='0' cellpadding='5' width='80%' align='center'>
 
<tr><th><href="/post/all/3/page:2/a:c/b:d/sort:title/direction:desc">標題</a></th>

 
<th><href="/post/all/3/page:2/a:c/b:d/sort:created/direction:asc">建立時間</a></th>

 
<th>操作</th>

 
</tr>

 
<tr bgcolor="#999999>資料顯示在這裏(略)</tr></table>
 <center>
 <span><a href="
/post/all/3/page:1/a:c/b:d/sort:title/direction:asc">第一頁</a></span> <href="/post/all/3/page:1/a:c/b:d/sort:title/direction:asc">&lt;&lt; 前一頁</a> <span><href="/post/all/3/page:1/a:c/b:d/sort:title/direction:asc">1</a></span> - <span class="current">2</span> - <span><href="/post/all/3/page:3/a:c/b:d/sort:title/direction:asc">3</a></span> - <span><href="/post/all/3/page:4/a:c/b:d/sort:title/direction:asc">4</a></span> <href="/post/all/3/page:3/a:c/b:d/sort:title/direction:asc">下一頁 &gt;&gt;</a> <span><href="/post/all/3/page:4/a:c/b:d/sort:title/direction:asc">最後一頁</a></span><br>
 目前在第 2 頁 / 總共 4 頁, 每頁 3 筆資料, 總共 12 筆, 目前是第 4 至 6 筆資料
</center



由上面,可以看到自訂的參數也是以 /參數名稱:參數值 的方式,加到連結裏面。同理,在controller 中,可以透過passedArgs取得以/參數名稱:參數值的數值。

 

原文:http://otaku.kigi.tw/2008/03/cakephp-pagination_25.html


转载于:https://www.cnblogs.com/derrck/archive/2009/05/14/1456585.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于事件驱动架构构建微服务第2部分:领域对象和业务规则

原文链接&#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part2-domain-objects-and-business-rules/在本文中&#xff0c;我将实现领域模型&#xff1a;EduSync.Speech.Domain这是包含核心域的最内层。它包含我们的领域对象和业…

/etc/sudoers中的含义

Sudo 是允许系统管理员让普通用户执行一些或者全部的root 命令的一个工具&#xff0c;如halt&#xff0c;reboot&#xff0c;su 等等。这样不仅减少了root 用户的登陆 和管理时间&#xff0c;同样也提高了安全性。Sudo 不是对shell 的一个代替&#xff0c;它是面向每个命令的。…

qt客户端连接服务器不响应,qt判断tcp客户端是否连接服务器

qt判断tcp客户端是否连接服务器 内容精选换一换本章节指导您使用MongoDB客户端&#xff0c;通过弹性云服务器内网方式连接GaussDB(for Mongo)集群实例。操作系统使用场景&#xff1a;弹性云服务器的操作系统以Linux为例&#xff0c;客户端本地使用的计算机系统以Windows为例。目…

asp版新闻发布今日弄好

感谢组长帮忙弄好了新闻发布的删除功能&#xff0c;组长自己那么多事&#xff0c;而且又是凌晨二点&#xff0c;仍过来帮我解决问题。太感激了。。。。最近特别忙&#xff0c;也让我多了些怨天尤人的感慨。其实还是自己的原因&#xff0c;如果我能力足够强的话&#xff0c;会轻…

谈谈为什么我们需要云原生架构?

未来的软件&#xff0c;从诞生起&#xff0c;就是生在云上&#xff0c;长在云上的。这个说法绝对不是没有根据的&#xff0c;看看现在的互联网大厂在做的事情&#xff0c;你就知道了&#xff1a;阿里宣布成立云原生技术委员会&#xff0c;并投入数十亿大力推动阿里经济体全面云…

用SQL Server Compact Edition创建移动应用程序 【转载】

本文转载自 http://www.bccn.net/Article/sjk/sqlserver/jszl/200709/6545.html 这个文档比较完整地介绍了在移动开发中&#xff0c;如何实现对SQL Server数据库的合并订阅。收藏一下先&#xff0c;在用的时候仔细看一下即可。转载于:https://www.cnblogs.com/chenxizhang/arch…

服务器系统设计方案,服务器集群方案设计

当前主流的集群方式包括以下几种&#xff1a;1.服务器主备集群方式服务器主-备方式由一台服务器在正常运行状态提供对外服务&#xff0c;其它集群节点作为备份机&#xff0c;备份机在正常状态下不接受外部的应用请求&#xff0c;实时对生产机进行检测&#xff0c;当生产机停机时…

第2天.make的学习(第二部分)对伪目标的理解

一、目标&#xff0c;依赖&#xff0c;命令也许大家觉得这个不重要&#xff0c;但今天我有了新的认识&#xff0c;所以写了下来。这三个就是Makefile的全部&#xff0c;但今天我要重点说一下它的执行顺序。每个Makefile都有且只有一个终极目标&#xff0c;下设若干子目标&#…

ASP.NET(c#)常用类函数

常用函数系列: public static string Get_ClientIP() 得到客户端IP public static string Get_CMac(string IP) 得到客户端 CMac 地址 public static string RequestF(string xPName,string xPType,int xLenDef) 安全接收数据系列 public static string Show_Cont(string xStr)…

快别发语音了! | 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;图源千叶的堕天使绅士猫_呜喵0w0&#xff0c;侵权删&#xff09;我们无论遇到什么困难&#xff0c;都不要怕&#xff0c;微笑着面对它&#xff01;消除恐惧的最好方法就是面对恐惧&#xff01;

软件项目管理概览----版本控制

随着软件项目规模的不断扩大&#xff0c;项目管理的作用变得越来越重要。如果一个需要长期维护的项目不能得到很好的管理与控制&#xff0c;“软件腐败”就会发生&#xff0c;用不了多久&#xff0c;我们的程序可能就会像一团拌好的炸酱面一样难以找到头绪&#xff0c;维护的成…

设计模式之原型

原型模式介绍完整拷贝原型模式主要解决的问题就是创建重复对象&#xff0c;而这部分对象内容本身比较复杂&#xff0c;生成过程可能从库或者RPC接口中获取数据的耗时较长&#xff0c;因此采用克隆的方式节省时间。原型模式是一种创建型设计模式&#xff0c;使你能够复制已有对象…

华为服务器停止响应,windows服务器停止工作

windows服务器停止工作 内容精选换一换无法通过远程桌面连接裸金属服务器时&#xff0c;我们推荐您按照以下思路排查问题。检查是否符合登录条件检查网络是否正常检查防火墙配置是否正常远程访问端口配置异常尝试重启裸金属服务器确认是否已经按照裸金属服务器登录前的准备工作…

专题1.1——Exchange2013部署前准备条件

本专题将主要介绍Exchange2013从部署前准备、正式部署到应用配置和维护的整个过程。博文是我在自己做测试的过程中自己编写的&#xff0c;如果大家有什么意见或问题也欢迎一起讨论交流。废话不多说&#xff0c;下面进入正题。本节将主要介绍部署Exchange2013之前需要准备的先决…

Tabs

Tabs控件的功能是在一个页面上显示多个选项卡。由两部分组成&#xff1a;TabContainer和TabPanel.前者表示整个一组选项卡&#xff0c;而后者表示其中的一个选项卡。 属性列表&#xff1a; OnClientActiveTabChanged:单击选项卡标题触发的事件 Height:选项卡的高度 ContentTemp…

这些让人看瞎了的设计!实力证明,数学才是世界的最终boss!

全世界只有3.14 %的人关注了青少年数学之旅昨天小天刷微博&#xff0c;看到了一组动图&#xff0c;一时间我都不知道是我的眼睛出了错&#xff0c;还是我的大脑反应不过来。奇了怪了&#xff01;怎么箭头反转了180后&#xff0c;还是原样&#xff01;问题到底出在哪里&#xff…

你真的了解低代码平台吗?

从 2020 年疫情之后&#xff0c;低代码这个概念就突然变得火热起来&#xff0c;各大自媒体纷纷推出介绍低代码的文章&#xff0c;InfoQ 也曾发表过一篇《为什么我说低代码是“行业毒瘤”&#xff1f;》引发了热议&#xff0c;明道的创始人任向晖随后在自己的公众号写文章《低代…

服务器抽屉式维护,一种服务器用可顺序运动的滑轨

1.一种服务器用可顺序运动的滑轨&#xff0c;包括内轨(1)、中轨(2)和外轨(3)&#xff0c;内轨(1)、中轨 (2)和外轨⑶依次连接&#xff0c;其特征在于&#xff1a;还包括外壳⑷&#xff0c;外壳⑷内设有滑行架(5)&#xff0c;滑行架 (5)与外轨(3)相连接&#xff0c;中轨(2)上设有…

50个常用sql语句

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题&#xff1a; 1、查询“001”课程比“002”课程成绩高的所有学生的学号&#xff1b; select a.S# from (select s#,score from SC where C#001) a,(selec…

无边工作,无际遐想

又是一个胡乱涂鸦&#xff0c;最近很长一段时间我就像临产孕妇样&#xff0c;挣扎在“生产”边缘&#xff0c;每次将手放在键盘上&#xff0c;努力憋出一丝一缕。却就是伸不出个头来。还好&#xff0c;我比孕妇自由&#xff0c;可以停下来休息休息。有句话说的好&#xff1a;生…