Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklungsframework Yii Framework-Tutorial (28) Einführung in den Datenanbieter

PHP-Entwicklungsframework Yii Framework-Tutorial (28) Einführung in den Datenanbieter

黄舟
黄舟Original
2017-01-22 09:34:591297Durchsuche

Bevor wir Zii-Komponenten vorstellen, stellen wir kurz die von Yii unterstützte Datenquellenschnittstelle IDataProvider vor. Die Hauptfunktion von IDataProvider besteht darin, Datenquellen für UI-Komponenten wie GridView, ListView usw. bereitzustellen und auch das Paging und Sortieren von Daten zu unterstützen . Die folgende Abbildung zeigt die drei integrierten Datenquellen in Yii:

CActiveDataProvider Active Record-basierte Datenquelle

CArraryDataProvider Array-basierte Datenquelle

CSqlDataProvider SQL-Abfragebasis Datenquelle

Die Verwendung der drei Datenanbieter ist ähnlich:

PHP-Entwicklungsframework Yii Framework-Tutorial (28) Einführung in den Datenanbieter

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.

Das Obige ist der Inhalt des PHP-Entwicklungsframeworks Yii Framework-Tutorial ( 28) Einführung in den Datenanbieter und mehr. Für verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn