>백엔드 개발 >PHP 튜토리얼 >PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(28) 데이터 공급자 소개

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(28) 데이터 공급자 소개

黄舟
黄舟원래의
2017-01-22 09:34:591306검색

Zii 컴포넌트 소개를 시작하기 전에 Yii에서 지원하는 데이터 소스 인터페이스 IDataProvider에 대해 간단히 소개하겠습니다. IDataProvider의 주요 기능은 GridView, ListView 등과 같은 UI 컴포넌트에 대한 데이터 소스를 제공하고 페이징 및 정렬도 지원하는 것입니다. 데이터. 다음 그림은 Yii에 내장된 세 가지 데이터 소스를 보여줍니다.

CAActiveDataProvider Active Record 기반 데이터 소스

CArraryDataProvider 배열 기반 데이터 소스

CSqlDataProvider SQL 쿼리 기반 데이터 소스

세 가지 데이터 공급자의 사용법은 유사합니다.

PHP 개발 프레임워크 Yii 프레임워크 튜토리얼(28) 데이터 공급자 소개

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 프레임워크 튜토리얼의 내용입니다(28). Data Provider 소개 및 기타 관련 콘텐츠 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.