Yii Framework 开发教程(28) Data Provider 简介
2012-12-29 08:17
309 查看
这开始介绍Zii组件之前,先简要介绍一下Yii支持的数据源接口 IDataProvider,IDataProvider主要功能是为UI组件如GridView,ListView等提供数据源,同时也支持数据的分页和排序。下图为Yii内置的三种数据源:CActiveDataProvider 基于Active Record的数据源
CArraryDataProvider 基于数组的数据源
CSqlDataProvider 基于SQL查询的数据源
三种Data Provider的使用大同小异:CActiveDataProvider 基于ActiveRecord, 它通过AR的 CActiveRecord::findAll方法读取数据库记录,并通过 criteria属性设置查询条件。如:
CArrayDataProvider 基于数组,其中属性rawData设置原始数据,一般为数组或者DAO查询结果,如:
CSqlDataProvider 基于SQL查询,通过设置 sql语句来配置,比如:
CArraryDataProvider 基于数组的数据源
CSqlDataProvider 基于SQL查询的数据源
三种Data Provider的使用大同小异:CActiveDataProvider 基于ActiveRecord, 它通过AR的 CActiveRecord::findAll方法读取数据库记录,并通过 criteria属性设置查询条件。如:
$dataProvider=new CActiveDataProvider('Post', array( 'criteria'=>array( 'condition'=>'status=1', 'order'=>'create_time DESC', 'with'=>array('author'), ), 'pagination'=>array( 'pageSize'=>20, ), )); // $dataProvider->getData() will return a list of Post objects
CArrayDataProvider 基于数组,其中属性rawData设置原始数据,一般为数组或者DAO查询结果,如:
$rawData=Yii::app()->db->createCommand('SELECT * FROM tbl_user')->queryAll(); // or using: $rawData=User::model()->findAll(); $dataProvider=new CArrayDataProvider($rawData, array( 'id'=>'user', 'sort'=>array( 'attributes'=>array( 'id', 'username', 'email', ), ), 'pagination'=>array( 'pageSize'=>10, ), )); // $dataProvider->getData() will return a list of arrays.
CSqlDataProvider 基于SQL查询,通过设置 sql语句来配置,比如:
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM tbl_user')->queryScalar(); $sql='SELECT * FROM tbl_user'; $dataProvider=new CSqlDataProvider($sql, array( 'totalItemCount'=>$count, 'sort'=>array( 'attributes'=>array( 'id', 'username', 'email', ), ), 'pagination'=>array( 'pageSize'=>10, ), )); // $dataProvider->getData() will return a list of arrays.关于DataProvider详细文档可以参见Yii文档
相关文章推荐
- Yii Framework 开发教程(28) Data Provider 简介
- Yii Framework 开发教程(22) UI 组件 Zii组件简介
- Yii Framework 开发教程(22) UI 组件 Zii组件简介
- Yii Framework 开发教程(11) UI 组件 ActiveForm示例
- WPF开发简介教程
- SharePoint 2007图文开发教程(1)---简介,安装,配置及创建Web应用程序
- Yii Framework 开发教程(23) 数据库-概述
- Yii Framework 开发教程(27) 数据库-关联Active Record示例
- Yii Framework 开发教程(29) Zii组件-Menu 示例
- Yii Framework 开发教程(31) Zii组件-DetailView 示例
- Yii Framework 开发教程(27) 数据库-关联Active Record示例
- Yii Framework 开发教程(44) Zii组件-Resizable示例
- Yii Framework2.0开发教程(2)使用表单Form
- Kendo UI开发教程:初始化Data属性
- Magento2开发教程 - Magento 2 缓存简介 Cache
- ASP.NET企业开发框架IsLine FrameWork系列之五--DataProvider 数据访问(中)
- iOS开发中文教程(教材):《iOS应用程序开发方法与实践》内容简介与目录
- Android四大组件简介:Android 基础知识,开发教程
- [网页游戏开发]Morn简介及使用教程