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这是包含核心域的最内层。它包含我们的领域对象和业…

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

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

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

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

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

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

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

全世界只有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之前需要准备的先决…

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

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

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

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

图像还可以这样玩!如何用OpenCV处理图像?

全世界只有3.14 % 的人关注了青少年数学之旅人工智能近年来呈现爆发式发展&#xff0c;计算机视觉和深度学习作为人工智能的两大支柱学科&#xff0c;近年来得到迅速发展。今天小天将带着大家走进计算机视觉&#xff01;所谓计算机视觉&#xff0c;就是指用摄影机和电脑代替人眼…

java集合学习笔记 ---Collections类对集合的处理

2019独角兽企业重金招聘Python工程师标准>>> 包名:java.util.CollectionsCollections是个类&#xff0c;不是接口有以下方法&#xff0c;部分列举1.对List进行升序排序public static void sort(List list)如果要进行降序排序,可以在sort函数中制定降序public static…

如何入门.NET Core ? 推荐这10个优秀的开源项目!

.NET 5马上就要发布了&#xff0c;还不知道这些.NET Core开源项目&#xff1f;只推荐干货&#xff01;当然这些开源项目都是个人或组织开发的。1.Ant Design Blazor.NET进行客户端Web开发又一利器。微软官方认可&#xff0c;微软Build2020开发者大会Blazor介绍中&#xff0c;提…

.NET设计模式(7):创建型模式专题总结(Creational Pattern)

概述 创建型模式&#xff0c;就是用来创建对象的模式&#xff0c;抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。本文对五种常用创建型模式进行了比较&#xff0c;通过一个游戏开发场景的例子来说该如何使用创建型模式。 为什么需要创建型模式 所…

ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目

Abp vnext 4.4出现了一个比较重大的变更&#xff1a;在Startup template中移除了EF Core Migrations项目&#xff0c;本文翻译自community.abp.io/articl由于本文发布的时候Abp vnext的版本还没有到4.4&#xff0c;所以本文演示了如何从4.4以前的版本移除EntityFrameworkCore.D…

史上最变态高考数学题,让99%的考生献上膝盖,看完我惊了......

全世界只有3.14 %的人关注了青少年数学之旅今天超模君想问大家一个问题&#xff1a;如果在撒哈拉大沙漠或者是西伯利亚上建造一个大型装置&#xff0c;以便向地球之外的其他星球的朋友们表明地球上存在有智慧的生命&#xff0c;最适当的装置是什么呢&#xff1f;勾股定理&#…

C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并

C#操作Excel文件(读取Excel&#xff0c;写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以总结&#xff0c;现在共享大家&#xff0c;希望给大家能够给大家带了一定的帮助。另外我们还要注意一些简单的问题1.exc…

猪肉上的红章和蓝章有啥不同?| 今日趣图

全世界只有3.14 %的人关注了青少年数学之旅亲眼看到金字塔你才会意识到它有多大&#xff01;&#xff08;图源光消失的地方&#xff0c;侵权删&#xff09;你女朋友的脸皮有多厚&#xff1f;&#xff08;图源程序员新视界&#xff0c;侵权删&#xff09;猪肉上的红章和蓝章有啥…

如何避免和人尬聊?

全世界只有3.14 %的人关注了青少年数学之旅想要和别人有聊不完的话题&#xff1f;当然是多读书多看新闻了解新鲜有趣的事物啦如果你没有时间去阅读那么关注以下公号将会让你收获更多信息~长按二维码&#xff0c;选择“识别图中二维码”订阅。▼看鉴ID:kanjian6666▲长按二维码“…