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获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
php处理复杂xml数据示例
Jul 11 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
php微信公众号开发之秒杀
Oct 20 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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中路径问题的解决方案
2006/10/09 PHP
php&amp;java(二)
2006/10/09 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JS中Location使用详解
2015/05/12 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
Vue组件化通讯的实例代码
2017/06/23 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
Python类的专用方法实例分析
2015/01/09 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
python读取和保存视频文件
2018/04/16 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
Python json读写方式和字典相互转化
2020/04/18 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
2016年春节慰问信息
2015/03/25 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书