Yii CGridView 之 SQL 语句
2024-10-04 22:04:08
在CGridView里,有时候需要用到复杂的查询时,可用 CSqlDataProvider替换CActiveDataProvider,
CSqlDataProvider 可用复杂的查询语句,例子如下:
1.在控制器中:
public function actionIndex()
{
$count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM app_item')->queryScalar();
$sql = 'SELECT * FROM app_item';
$dataProvider = new CSqlDataProvider($sql, array(
'totalItemCount' => $count,//数量
'sort' => array(
'attributes' => array(
'name'=>array('label'=>'名称'),
'type'=>array('label'=>'类型'),
'data'=>array('label'=>'数据')
)
),
'keyField'=>'name',//Yii 默认的主键是 id,而我的数据库默认的是 name,所以这里设定 name
'pagination' => array(
'pageSize' => 10
),
));
$this->render('index',array('dataProvider'=>$dataProvider));
} //自定义函数,用于 type字段的解释
public function get_type($data,$row){
$type = $data["type"];
if( $type == 1 ) {
echo '权限';
}elseif( $type == 2 ) {
echo '角色';
}elseif( $type == 0 ) {
echo '任务';
}
}
2.在视图中
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'app-item-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'id'=>'CheckBox',//输出复选框
'class'=>'CCheckBoxColumn',
'selectableRows' => '50',
),
'name',//保持原样
array(
'name'=>'type',
'type'=>'raw',
'value'=>array($this,'get_type'), //get_type 是自定义的函数
'htmlOptions'=>array('width'=>"100px"), //设置样式
),
array(
'header'=>'附加字段',
'value'=>'substr($data["name"],0,3)',//如果是 CActiveDataProvider 时用对象方式 $data->name
),
),
))
3.结果如下
最新文章
- Sql Server 2012新特性 Online添加非空栏位.
- espcms列表页ajax获取内容 - 并初始化swiper
- 对C++对象实例化的测试
- Uva 11542 乘积是平方数
- HDU 5651 xiaoxin juju needs help 水题一发
- C#功能扩张方式
- C语言学习笔记--字符串函数
- COJ 0580 4021征兵方案
- WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]
- rpm打包工具---FPM
- keystonejs开发中解决bug--版本要对应
- AlexNet实践
- SpringBoot与SpringCloud学习指南
- TabLayout基本属性全解
- poj1703(种类并查集)
- Chrome Input框老是有输入记录的终极解决方案
- 【10】JMicro微服务-API网关
- Maven 映像
- Mysql 查询是否锁表
- mysql 基本的操作数据库命令
热门文章
- 详细记录登录过程的用户、IP地址、shell命令以及详细操作时间
- 9.16考试 第一题 X国的军队题解
- 对于springboot的几种注入方法的个人看法
- Java编程思想:NIO知识点
- opatch卸载weblogic12.1.3.0补丁
- Jenkins+Sonar搭建持续集成和代码质量检查环境
- 入职两个月,WPF开发感想
- 小白之入口即化——十分钟看懂while循环,字符串格式化,运算符
- Excel催化剂开源第46波-按行列排列多个图形技术要点
- 个人永久性免费-Excel催化剂功能第64波-多级数据如省市区联动输入,自由配置永不失效