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

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

黄舟
풀어 주다: 2023-03-05 09:10:02
원래의
1307명이 탐색했습니다.

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)를 주목해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿