`
lyunabc
  • 浏览: 551480 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Yii Framework 开发教程(28) Data Provider 简介

 
阅读更多

这开始介绍Zii组件之前,先简要介绍一下Yii支持的数据源接口 IDataProvider,IDataProvider主要功能是为UI组件如GridView,ListView等提供数据源,同时也支持数据的分页和排序。下图为Yii内置的三种数据源:

  • CActiveDataProvider 基于Active Record的数据源
  • CArraryDataProvider 基于数组的数据源
  • CSqlDataProvider 基于SQL查询的数据源

201212128001

三种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框架教程之使用YIIC快速创建YII应用详解

    主要介绍了YII Framework框架教程之使用YIIC快速创建YII应用的方法,详细分析说明了YII Framework框架使用YIIC命令行创建应用的相关技巧与注意事项,需要的朋友可以参考下

    Yii Framework API手册

    Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...

    yii framework框架 + yii app模板(基本、高级).zip

    yii framework框架 + yii app模板(基本、高级)

    YII Framework框架教程之日志用法详解

    YII Framework是一个基于PHP的高级Web应用开发框架,它提供了一套日志系统,以便开发者追踪和记录应用程序运行时的状态和潜在问题。本文将详细介绍YII中日志的配置、使用方法及相关注意事项,通过实例阐述如何在YII...

    Yii Framework 2.0 权威指南 pdf格式 中文高清离线版 有书签

    ### Yii Framework 2.0 权威指南知识点详解 #### 一、Yii框架概述 - **定义**:Yii是一款高效能、基于组件的PHP框架,主要用于加速现代Web应用的开发进程。其名称“Yii”(发音类似于“易”)在中国文化中有“极致...

    YII Framework框架教程之缓存用法详解

    首先,Yii框架的缓存是通过组件方式定义的,位于/yii_dev/yii/framework/caching目录下。该目录包括了多种缓存组件实现,例如CApcCache、CCache、CDbCache等,它们分别对应不同的缓存存储媒介,如APC、文件、数据库...

    Yii Framework 1.1.6

    Yii Framework 1.1.6 是一个高效、可扩展的 PHP 开发框架,它为开发者提供了构建大型Web应用所需的工具和功能。这个版本是Yii框架的稳定版本之一,发布于2011年,旨在提高开发效率并降低维护成本。 在Yii 1.1.6中,...

    yii framework 中文完全手册

    这个“yii framework 中文完全手册”提供了详尽的指南,帮助开发者理解和利用Yii的强大功能。在深入探讨之前,我们先简单介绍一下Yii框架的基本概念。 Yii,发音为"易",寓意“简易”,是一个快速、安全且专业的...

    Yii Framework v2.0.8.rar

    Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    Yii Framework v1.1.19

    Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

    yii framework 1.1.14 chm文档

    yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.

    Yii Framework v1.10 Class Reference

    Yii Framework 1.10的API手册

    Yii Framework框架中事件和行为的区别及应用实例分析

    主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下

    PHP实例开发源码-Yii Framework php框架.zip

    PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip

    Yii2.0打造京东商城平台PHP电商实战Yii2.0视频教程

    教程名称:Yii2.0 打造京东商城平台 PHP电商实战 Yii2.0视频教程 教程内容: 包含了电商的所有功能模块:商品展示、购物车功能、下单支付、发货、确认收获、商品管理、订单管理。电商API接口开发。Yii2.0级基于Yii...

    YiiFramework

    总的来说,Yii Framework 提供了一个高效且全面的开发环境,适用于构建各种复杂的Web应用。通过深入学习和理解Yii的各个组件和特性,开发者可以大大提高开发效率,同时保证应用的质量和安全性。

    yii framework 中文手册

    yii framework 最全最新的中文手册

    PHP 开发框架 Yii Framework v2.0.18.zip

    Yii Framework简介 Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的...

Global site tag (gtag.js) - Google Analytics