Yii实现分页的两种方法,一种是用DAO实现,另外一种是在widget实现.

各有优点吧,第一种效率会高一点, 第二种可以使用自带的表格,方便一些.
一. DAO实现分页.
[Controller层]
public function actionReport()
{
$sql = "select remitdate, sum(rate) sumrate from td_delivery
group by remitdate
order by remitdate desc";
$criteria=new CDbCriteria();
$result = Yii::app()->db->createCommand($sql)->query();
$pages=new CPagination($result->rowCount);
$pages->pageSize=2;
$pages->applyLimit($criteria);
$result=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$result->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$result->bindValue(':limit', $pages->pageSize);
$posts=$result->query();
$this->render('report',array(
'posts'=>$posts,
'pages'=>$pages,
));
}
[View层]
<?php foreach($posts as $row):?>
<?php echo CHtml::link($row["remitdate"],array('delivery/view','remitdate'=>$row["sumrate"]));?>
<?php echo $row["sumrate"]."<br />" ?>
<?php endforeach;?>
<?php
//分页widget代码:
$this->widget('CLinkPager',array('pages'=>$pages));
?>
优点: DAO效率高; 缺点: view层需要自己写一些样式,稍显麻烦一点
二. widget实现分页
[model层]
/**
* @var string attribute : 日运费 (统计用)
* 需要对新增加的字段做个声明
*/
public $dayrate;
/*
* 统计功能: 统计每日的运费
*/
public function statistics()
{
$criteria = new CDbCriteria;
$criteria->select = 'remitdate, sum(rate) AS dayrate';
$criteria->group = 'remitdate';
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
'sort'=>array(
// 表头设置点击排序的字段
'attributes'=>array(
'remitdate',
'dayrate'=>array(
'asc'=>'dayrate',
'desc'=>'dayrate DESC',
)
),
'defaultOrder'=>'remitdate desc',
),
));
}
[Controller层]
/**
* 运单统计功能:
* 按日期统计
*/
public function actionReport()
{
$model=new Delivery('statistics');
$model->unsetAttributes(); // clear any default values
$this->render('report',array(
'model'=>$model,
));
}
[View层]
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'delivery-grid',
'dataProvider'=>$model->statistics(),
'filter'=>$model,
'columns'=>array(
'remitdate',
'dayrate',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
优点: 可以使用自带的样式; 缺点: 效率略低.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Yii分页
# Yii实现分页
# yii分页组件用法实例分析
# Yii2.0框架实现带分页的多条件搜索功能示例
# Yii2.0小部件GridView(两表联查/搜索/分页)功能的实现代码
# yii2实现分页
# 带搜索的分页功能示例
# yii2分页之实现跳转到具体某页的实例代码
# Yii2分页的使用及其扩展方法详解
# Yii分页用法实例详解
# Yii使用CLinkPager分页实例详解
# Yii列表定义与使用分页方法小结(3种方法)
# Yii1.1中通过Sql查询进行的分页操作方法
# yii使用bootstrap分页样式的实例
# YII2框架中分页组件的使用方法示例
# 分页
# 可以使用
# 自带
# 是在
# 两种
# 做个
# 各有
# 第二种
# 第一种
# 大家多多
# 高一点
# 稍显
# 按日
# 效率高
# group
# remitdate
# desc
# order
# rate
# sum
相关文章:
5种Android数据存储方式汇总
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站之星3.0如何解决常见操作问题?
如何实现建站之星域名转发设置?
如何确认建站备案号应放置的具体位置?
Android滚轮选择时间控件使用详解
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
建站之星如何实现PC+手机+微信网站五合一建站?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
建站之家VIP精选网站模板与SEO优化教程整合指南
焦点电影公司作品,电影焦点结局是什么?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
简单实现Android验证码
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何撰写建站申请书?关键要点有哪些?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
大同网页,大同瑞慈医院官网?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何选择PHP开源工具快速搭建网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
,石家庄四十八中学官网?
湖北网站制作公司有哪些,湖北清能集团官网?
如何选择高性价比服务器搭建个人网站?
如何高效配置IIS服务器搭建网站?
建站之星收费标准详解:套餐费用及年费价格表一览
大连网站设计制作招聘信息,大连投诉网站有哪些?
制作网站的基本流程,设计网站的软件是什么?
制作电商网页,电商供应链怎么做?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
建站之星代理如何优化在线客服效率?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
建站10G流量真的够用吗?如何应对访问高峰?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
建站之星如何快速解决建站难题?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
内部网站制作流程,如何建立公司内部网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Thinkphp 中 distinct 的用法解析
如何快速搭建二级域名独立网站?
如何用美橙互联一键搭建多站合一网站?
建站之星如何快速更换网站模板?
高防服务器租用首荐平台,企业级优惠套餐快速部署
,有什么在线背英语单词效率比较高的网站?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
贸易公司网站制作流程,出口贸易网站设计怎么做?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何用y主机助手快速搭建网站?
C#怎么创建控制台应用 C# Console App项目创建方法
*请认真填写需求信息,我们会在24小时内与您取得联系。