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.
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 Details
prepareKeys()
protected method
prepareModels()
protected method
prepareTotalCount()
protected method
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.
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 public property
the name of the [[\yii\base\Model|Model]] class that will be represented.
This property is used to get columns' names.