ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発フレームワーク Yii Framework チュートリアル (28) データプロバイダーの概要

PHP 開発フレームワーク Yii Framework チュートリアル (28) データプロバイダーの概要

黄舟
黄舟オリジナル
2017-01-22 09:34:591314ブラウズ

Zii コンポーネントの紹介を始める前に、Yii がサポートするデータ ソース インターフェイス IDataProvider を簡単に紹介します。IDataProvider の主な機能は、GridView、ListView などの UI コンポーネントにデータ ソースを提供することであり、データのページングと並べ替えもサポートします。 。以下の図は、Yii に組み込まれた 3 つのデータ ソースを示しています:

CActiveDataProvider アクティブ レコードに基づくデータ ソース

CArraryDataProvider 配列に基づくデータ ソース

CSqlDataProvider SQL クエリに基づくデータ ソース

3 つのデータ プロバイダーの使用法は似ています。

PHP 開発フレームワーク Yii Framework チュートリアル (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 Framework チュートリアル (28) データ プロバイダーの紹介の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。