Heim > Artikel > Backend-Entwicklung > PHP-Entwicklungsframework Yii Framework-Tutorial (28) Einführung in den Datenanbieter
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:
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)!