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 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
May 24 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
php 猴子摘桃的算法
Jun 20 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 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
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
Javascript学习指南
2014/12/01 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
django的autoreload机制实现
2020/06/03 Python
Python如何执行系统命令
2020/09/23 Python
Python通过len函数返回对象长度
2020/10/22 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
商务助理岗位职责
2013/11/13 职场文书
家长给孩子的评语
2014/01/30 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
学雷锋宣传标语
2014/06/25 职场文书
校友回访母校寄语
2015/02/26 职场文书
工作失职自我检讨书
2015/05/05 职场文书
小学德育工作总结2015
2015/05/12 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL