全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Yii实现分页的两种方法

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小时内与您取得联系。