Maison  >  Article  >  développement back-end  >  Framework de développement PHP Tutoriel Yii Framework (28) Introduction au fournisseur de données

Framework de développement PHP Tutoriel Yii Framework (28) Introduction au fournisseur de données

黄舟
黄舟original
2017-01-22 09:34:591300parcourir

Avant de commencer à présenter les composants Zii, présentons brièvement l'interface de source de données IDataProvider prise en charge par Yii. La fonction principale de IDataProvider est de fournir des sources de données pour les composants de l'interface utilisateur tels que GridView, ListView, etc., et prend également en charge la pagination et le tri. de données. La figure suivante montre les trois sources de données intégrées dans Yii :

Source de données basée sur un enregistrement actif CActiveDataProvider

Source de données basée sur un tableau CArraryDataProvider

CSqlDataProvider basée sur une requête SQL source de données

L'utilisation des trois fournisseurs de données est similaire :

Framework de développement PHP Tutoriel Yii Framework (28) Introduction au fournisseur de données

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.

Ce qui précède est le contenu du tutoriel du framework de développement PHP Yii Framework ( 28) Introduction au fournisseur de données, et plus Pour le contenu associé, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn