Class yii\data\ArrayDataProvider

Inheritanceyii\data\ArrayDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\BaseObject
Implementsyii\base\Configurable, yii\data\DataProviderInterface
Subclassesyii\debug\models\timeline\DataProvider
Available since version2.0
Source Code https://github.com/yiisoft/yii2/blob/master/framework/data/ArrayDataProvider.php

ArrayDataProvider implements a data provider based on a data array.

The $allModels property contains all data models that may be sorted and/or paginated. ArrayDataProvider will provide the data after sorting and/or pagination. You may configure the $sort and $pagination properties to customize the sorting and pagination behaviors.

Elements in the $allModels array may be either objects (e.g. model objects) or associative arrays (e.g. query results of DAO). Make sure to set the $key property to the name of the field that uniquely identifies a data record or false if you do not have such a field.

Compared to yii\data\ActiveDataProvider, ArrayDataProvider could be less efficient because it needs to have $allModels ready.

ArrayDataProvider may be used in the following way:

$query = new Query;
$provider = new ArrayDataProvider([
    'allModels' => $query->from('post')->all(),
    'sort' => [
        'attributes' => ['id', 'username', 'email'],
    ],
    'pagination' => [
        'pageSize' => 10,
    ],
]);
// get the posts in the current page
$posts = $provider->getModels();

Note: if you want to use the sorting feature, you must configure the $sort property so that the provider knows which columns can be sorted.

For more details and usage information on ArrayDataProvider, see the guide article on data providers.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$allModels array The data that is not paginated or sorted. yii\data\ArrayDataProvider
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$count integer The number of data models in the current page. yii\data\BaseDataProvider
$id string An ID that uniquely identifies the data provider among all data providers. yii\data\BaseDataProvider
$key string|callable The column that is used as the key of the data models. yii\data\ArrayDataProvider
$keys array The list of key values corresponding to $models. yii\data\BaseDataProvider
$modelClass string The name of the Model class that will be represented. yii\data\ArrayDataProvider
$models array The list of data models in the current page. yii\data\BaseDataProvider
$pagination yii\data\Pagination|false The pagination object. yii\data\BaseDataProvider
$sort yii\data\Sort|boolean The sorting object. yii\data\BaseDataProvider
$totalCount integer Total number of possible data models. yii\data\BaseDataProvider

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getCount() Returns the number of data models in the current page. yii\data\BaseDataProvider
getKeys() Returns the key values associated with the data models. yii\data\BaseDataProvider
getModels() Returns the data models in the current page. yii\data\BaseDataProvider
getPagination() Returns the pagination object used by this data provider. yii\data\BaseDataProvider
getSort() Returns the sorting object used by this data provider. yii\data\BaseDataProvider
getTotalCount() Returns the total number of data models. yii\data\BaseDataProvider
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\data\BaseDataProvider
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
prepare() Prepares the data models and keys. yii\data\BaseDataProvider
refresh() Refreshes the data provider. yii\data\BaseDataProvider
setKeys() Sets the key values associated with the data models. yii\data\BaseDataProvider
setModels() Sets the data models in the current page. yii\data\BaseDataProvider
setPagination() Sets the pagination for this data provider. yii\data\BaseDataProvider
setSort() Sets the sort definition for this data provider. yii\data\BaseDataProvider
setTotalCount() Sets the total number of data models. yii\data\BaseDataProvider
trigger() Triggers an event. yii\base\Component

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
prepareKeys() Prepares the keys associated with the currently available data models. yii\data\ArrayDataProvider
prepareModels() Prepares the data models that will be made available in the current page. yii\data\ArrayDataProvider
prepareTotalCount() Returns a value indicating the total number of data models in this data provider. yii\data\ArrayDataProvider
sortModels() Sorts the data models according to the given sort definition. yii\data\ArrayDataProvider

Property Details

$allModels public property

The data that is not paginated or sorted. When pagination is enabled, this property usually contains more elements than $models. The array elements must use zero-based integer keys.

public array $allModels null
$key public property

The column that is used as the key of the data models. This can be either a column name, or a callable that returns the key value of a given data model. If this is not set, the index of the $models array will be used.

See also getKeys().

public string|callable $key null
$modelClass public property (available since version 2.0.9)

The name of the Model class that will be represented. This property is used to get columns' names.

public string $modelClass null

Method Details

prepareKeys() protected method

Prepares the keys associated with the currently available data models.

protected array prepareKeys ( $models )
$models array

The available data models

return array

The keys

prepareModels() protected method

Prepares the data models that will be made available in the current page.

protected array prepareModels ( )
return array

The available data models

prepareTotalCount() protected method

Returns a value indicating the total number of data models in this data provider.

protected integer prepareTotalCount ( )
return integer

Total number of data models in this data provider.

sortModels() protected method

Sorts the data models according to the given sort definition.

protected array sortModels ( $models, $sort )
$models array

The models to be sorted

$sort yii\data\Sort

The sort definition

return array

The sorted data models