PHP开发框架Yii Framework教程(28) Data Provider简介
程序员文章站
2022-05-25 10:44:58
...
这开始介绍Zii组件之前,先简要介绍一下Yii支持的数据源接口 IDataProvider,IDataProvider主要功能是为UI组件如 GridView,ListView等提供数据源,同时也支持数据的分页和排序。下图为Yii内置的三种数据源:
CActiveDataProvider 基于Active Record的数据源
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 objectsCArrayDataProvider 基于数组,其中属性 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.
以上就是PHP开发框架Yii Framework教程(28) Data Provider简介的内容,更多相关内容请关注PHP中文网(www.php.cn)!
推荐阅读
-
PHP开发框架Yii Framework教程(17) UI 组件 TabView示例
-
PHP开发框架Yii Framework教程(18) UI 组件 TextHighlighter示例
-
PHP开发框架Yii Framework教程(16) UI 组件 StarRating示例
-
PHP开发框架Yii Framework教程(19) UI 组件 TreeView示例
-
PHP开发框架Yii Framework教程(15) UI 组件 MultiFileUpload示例
-
PHP开发框架Yii Framework教程(37) Zii组件-Dialog示例
-
PHP开发框架Yii Framework教程(20) UI组件 Captcha示例
-
PHP开发框架Yii Framework教程(14) UI 组件 MaskedTextField示例
-
PHP开发框架Yii Framework教程(38) Zii组件-ProgressBar示例
-
PHP开发框架Yii Framework教程(39) Zii组件-Slider示例