Yii列表定义与使用分页方法小结(3种方法)


Posted in PHP onJuly 15, 2016

本文实例讲述了Yii列表定义与使用分页方法。分享给大家供大家参考,具体如下:

方法一:控制器定义

function actionIndex(){
  $criteria = new CDbCriteria();
  $count=Article::model()->count($criteria);
  $pages=new CPagination($count);
  // 返回前一页
  $pages->pageSize=10;
  $pages->applyLimit($criteria);
  $models = Post::model()->findAll($criteria);
  $this->render('index', array(
  'models' => $models,
     'pages' => $pages
  ));
}

视图定义:

<?php foreach($models as $model): ?>
// 显示一个模型
<?php endforeach; ?>
// 显示分页
<?php $this->widget('CLinkPager', array(
  'pages' => $pages,
)) ?>

方法二:控制器定义:

public function actionIndex()
{
  $dataProvider=new CActiveDataProvider('News',array(
      'criteria'=>array(
        'condition'=>'status=1',
        'order'=>'create_time DESC',
        'with'=>array('author'),
      ),
      'pagination'=>array(
        'pageSize'=>20,
      ),
  ));
  $this->render('index',array(
    'dataProvider'=>$dataProvider,
  ));
}

视图文件:

<?php $this->widget('zii.widgets.CListView', array(
  'dataProvider'=>$dataProvider,
  'itemView'=>'_view',
)); ?>

方法三:视图文件

<?php $this->widget('zii.widgets.grid.CGridView', array(
  'id'=>'news-grid',
  'dataProvider'=>$model->search(),
  'filter'=>$model,
  'template'=>'{items}{summary}{pager}',
   <span style="white-space:pre"> </span> 'pager'=>array(
      'class'=>'CLinkPager',
      'header'=>'分页:',
      'prevPageLabel'=>'上一页',
      'nextPageLabel'=>'下一页',
    ),
  <span style="white-space:pre">  </span> 'summaryText'=>'页数:{pages}/{page}页',
<span style="white-space:pre"> </span>'columns'=>array(
    'id',
    array('name'=>'title',
       'htmlOptions'=>array('width'=>'20%'),
       'value'=>'mb_substr($data->title,0,10,"utf-8")',
      ),
    array('name'=>'content',
       'htmlOptions'=>array('width'=>'20%'),
       'value'=>'mb_substr(strip_tags($data->content),0,10,"utf-8")',
      ),
    array('name'=>'type',
       'value'=>'News::model()->getNewsType($data->type)',
      ),
    'user',
    array('name'=>'status',
       'value'=>'News::model()->getNewsStatus($data->status)',
       ),
    array(
      'class'=>'CButtonColumn',
    ),
  ),
));

数据模型类:

public function search()
{
  $criteria=new CDbCriteria;
  $criteria->compare('id',$this->id);
  $criteria->compare('title',$this->title,true);
  $criteria->compare('content',$this->content,true);
  $criteria->compare('type',$this->type);
  $criteria->compare('user',$this->user,true);
  $criteria->compare('status',$this->status);
  $criteria->compare('create_data',$this->create_data,true);
  return new CActiveDataProvider($this, array(
    'criteria'=>$criteria,
    'pagination'=>array(
      'pageSize'=>50,
    ),
  ));
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP调用三种数据库的方法(1)
Oct 09 PHP
PHP 开源框架22个简单简介
Aug 24 PHP
解析使用ThinkPHP应该掌握的调试手段
Jun 20 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
Ajax实现对静态页面的文章访问统计功能示例
Oct 10 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP中PDO事务处理操作示例
May 02 PHP
session 加入redis的实现代码
Jul 15 #PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 #PHP
功能强大的PHP POST提交数据类
Jul 15 #PHP
Yii的Srbac插件用法详解
Jul 14 #PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 #PHP
Yii视图操作之自定义分页实现方法
Jul 14 #PHP
全面解析PHP操作Memcache基本函数
Jul 14 #PHP
You might like
PHP APC的安装与使用详解
2013/06/13 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
windows下Virtualenvwrapper安装教程
2017/12/13 Python
python调用百度语音识别api
2018/08/30 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
基于python 取余问题(%)详解
2020/06/03 Python
华为的Java面试题
2014/03/07 面试题
大四自我鉴定
2014/02/08 职场文书
安全标准化实施方案
2014/02/20 职场文书
小学见习报告
2015/06/23 职场文书
学校证明范文
2015/06/24 职场文书
详解Django的MVT设计模式
2021/04/29 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers