数据提供者一般用于yii2数据小部件的数据提供。

一:活动数据提供者

use yii\data\ActiveDataProvider;

$query = Post::find()->where(['status' => 1]);

$provider = new ActiveDataProvider([
    'query' => $query,
    'pagination' => [
        'pageSize' => 10,
    ],
    'sort' => [
        'defaultOrder' => [
            'created_at' => SORT_DESC,
            'title' => SORT_ASC,
        ]
    ],
]);

// 返回一个Post实例的数组
$posts = $provider->getModels();

二:数组数据提供者

use yii\data\ArrayDataProvider;

$model=CategoryModel::findOne($id);
$articles=$model->articles;

$provider = new ArrayDataProvider([
    'allModels' => $articles,
    'pagination' => [
        'pageSize' => 10,
    ],
    'sort' => [
        'attributes' => ['id', 'name'],
    ],
]);

// 获取当前请求页的每一行数据
$rows = $provider->getModels();

上一篇:Yii2学习笔记二十二:Yii2 ListView配置参数

下一篇:Yii2学习笔记二十四:邮件发送配置