Class yii\data\ActiveDataProvider

继承yii\data\ActiveDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\data\DataProviderInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/data/ActiveDataProvider.php

ActiveDataProvider 实现基于 yii\db\Queryyii\db\ActiveQuery 的数据提供者.

ActiveDataProvider 通过使用 $query 执行数据库查询来提供数据.

以下是使用 ActiveDataProvider 提供 ActiveRecord 实例的示例:

$provider = new ActiveDataProvider([
    'query' => Post::find(),
    'pagination' => [
        'pageSize' => 20,
    ],
]);

// get the posts in the current page
$posts = $provider->getModels();

以下示例演示如何在不使用 ActiveRecord 的情况下使用 ActiveDataProvider:

$query = new Query();
$provider = new ActiveDataProvider([
    'query' => $query->from('post'),
    'pagination' => [
        'pageSize' => 20,
    ],
]);

// get the posts in the current page
$posts = $provider->getModels();

有关 ActiveDataProvider 的更多详细信息和使用信息, 请参阅 权威指南 - 显示数据 - 数据提供器(Data Providers).

公共属性

隐藏继承的属性

属性类型描述定义在
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$count integer 当前页面中的数据模型的数量. 该属性是只读的. yii\data\BaseDataProvider
$db yii\db\Connection|array|string 数据库连接对象或数据库连接的应用程序组件ID. yii\data\ActiveDataProvider
$id string 在所有数据提供者中唯一标识数据提供者的 ID. yii\data\BaseDataProvider
$key string|callable 用作数据模型关键字的列. yii\data\ActiveDataProvider
$keys array 对应于 $models 的键值列表. $models 中的每个数据模型都由该数组中相应的键值唯一标识. yii\data\BaseDataProvider
$models array 当前页面中的数据模型列表. yii\data\BaseDataProvider
$pagination yii\data\Pagination|false 分页对象. 如果为false, 则表示分页被禁用. 请注意, 此属性的类型在 getter 和 setter 中有所不同. 有关详细信息, 请参阅getPagination()setPagination(). yii\data\BaseDataProvider
$query yii\db\QueryInterface 用于获取数据模型和 $totalCount 的查询(如果未明确设置). yii\data\ActiveDataProvider
$sort yii\data\Sort|boolean 排序对象. 如果为false, 则表示排序被禁用. 请注意, 此属性的类型在 getter 和 setter 中有所不同. 有关详细信息, 请参阅 getSort()setSort(). yii\data\BaseDataProvider
$totalCount integer 可能的数据模型的总数. yii\data\BaseDataProvider

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() yii\data\ActiveDataProvider
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getCount() 返回当前页面中的数据模型的数量. yii\data\BaseDataProvider
getKeys() 返回与数据模型关联的键值列表. yii\data\BaseDataProvider
getModels() 返回当前页面中的数据模型列表. yii\data\BaseDataProvider
getPagination() 返回此数据提供者使用的分页对象. yii\data\BaseDataProvider
getSort() 返回此数据提供者使用的排序对象. yii\data\BaseDataProvider
getTotalCount() 返回数据模型的总数. yii\data\BaseDataProvider
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化数据库连接组件. yii\data\ActiveDataProvider
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
prepare() 准备数据模型和键. yii\data\BaseDataProvider
refresh() 刷新数据提供者. yii\data\BaseDataProvider
setKeys() 设置与数据模型关联的键值列表. yii\data\BaseDataProvider
setModels() 在当前页面中设置数据模型. yii\data\BaseDataProvider
setPagination() 为此数据提供者设置分页. yii\data\BaseDataProvider
setSort() 为此数据提供者设置排序定义。 yii\data\ActiveDataProvider
setTotalCount() 设置数据模型的总数. yii\data\BaseDataProvider
trigger() 触发事件. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述定义在
prepareKeys() 准备与当前可用数据模型关联的键. yii\data\ActiveDataProvider
prepareModels() 准备将在当前页面中提供的数据模型. yii\data\ActiveDataProvider
prepareTotalCount() 返回一个值, 该值指示此数据提供者中的数据模型总数. yii\data\ActiveDataProvider

属性详情

$db public 属性

数据库连接对象或数据库连接的应用程序组件ID.

如果未设置, 将使用默认的数据库连接.

从版本 2.0.2 开始, 这也可以是用于创建对象的配置数组.

$key public 属性

用作数据模型关键字的列.

它可以是列名, 也可以是返回给定数据模型的键值的可调用对象.

如果未设置, 则将使用以下规则确定数据模型的键:

参见 getKeys().

public string|callable $key null
$query public 属性

用于获取数据模型和 $totalCount 的查询(如果未明确设置).

方法详情

__clone() public 方法

public void __clone ( )
init() public 方法

初始化数据库连接组件.

此方法将初始化 $db 属性, 以确保它引用了有效的数据库连接.

public void init ( )
throws yii\base\InvalidConfigException

如果 $db 无效.

prepareKeys() protected 方法

准备与当前可用数据模型关联的键.

protected array prepareKeys ( $models )
$models array

可用的数据模型.

return array

键.

prepareModels() protected 方法

准备将在当前页面中提供的数据模型.

protected array prepareModels ( )
return array

可用的数据模型.

prepareTotalCount() protected 方法

返回一个值, 该值指示此数据提供者中的数据模型总数.

protected integer prepareTotalCount ( )
return integer

此数据提供者中的数据模型总数.

setSort() public 方法

为此数据提供者设置排序定义。

public void setSort ( $value )
$value array|yii\data\Sort|boolean

此数据提供者使用的排序定义.

这可以是以下之一:

  • 一个用于创建排序定义对象的配置数组. class元素默认为yii\data\Sort;
  • 一个 yii\data\Sort 或其子类的实例;
  • 如果排序需要被禁用, 则为false
throws yii\base\InvalidArgumentException