PHP Class yii\data\ArrayDataProvider

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 ActiveDataProvider, ArrayDataProvider could be less efficient because it needs to have [[allModels]] ready. ArrayDataProvider may be used in the following way: php $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.
Since: 2.0
Author: Qiang Xue ([email protected])
Inheritance: extends BaseDataProvider
Show file Open project: yiisoft/yii2 Class Usage Examples

Public Properties

Property Type Description
$allModels 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.
$key 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.
$modelClass the name of the [[\yii\base\Model|Model]] class that will be represented. This property is used to get columns' names.

Protected Methods

Method Description
prepareKeys ( $models )
prepareModels ( )
prepareTotalCount ( )
sortModels ( array $models, Sort $sort ) : array Sorts the data models according to the given sort definition

Method Details

prepareKeys() protected method

protected prepareKeys ( $models )

prepareModels() protected method

protected prepareModels ( )

prepareTotalCount() protected method

protected prepareTotalCount ( )

sortModels() protected method

Sorts the data models according to the given sort definition
protected sortModels ( array $models, Sort $sort ) : array
$models array the models to be sorted
$sort Sort the sort definition
return array the sorted data models

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 $allModels

$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 $key

$modelClass public property

the name of the [[\yii\base\Model|Model]] class that will be represented. This property is used to get columns' names.
Since: 2.0.9
public $modelClass