Класс yii\data\ArrayDataProvider
| Наследование | yii\data\ArrayDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\data\DataProviderInterface |
| Подклассы | yii\debug\models\timeline\DataProvider |
| Доступен с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/data/ArrayDataProvider.php |
ArrayDataProvider реализует поставщик данных на основе массива данных.
Свойство $allModels содержит все модели данных, которые могут быть отсортированы и/или постраничены. ArrayDataProvider предоставит данные после сортировки и/или постраничной навигации. Вы можете настроить свойства $sort и $pagination для настройки поведения сортировки и постраничной навигации.
Элементы в массиве $allModels могут быть либо объектами (например, объектами модели), либо ассоциативными массивами (например, результатами запроса DAO). Убедитесь, что вы установили свойство $key в имя поля, которое однозначно идентифицирует запись данных, или в false, если у вас нет такого поля.
По сравнению с yii\data\ActiveDataProvider, ArrayDataProvider может быть менее эффективным, потому что ему необходимо иметь $allModels готовым.
ArrayDataProvider может использоваться следующим образом:
$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();
Примечание: если вы хотите использовать функцию сортировки, вы должны настроить свойство $sort таким образом, чтобы поставщик знал, какие столбцы можно сортировать.
Дополнительную информацию и примеры использования ArrayDataProvider см. в статье руководства о поставщиках данных.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $allModels | массив | Данные, которые не постраничены и не отсортированы. | yii\data\ArrayDataProvider |
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $count | целое число | Количество моделей данных на текущей странице. | yii\data\BaseDataProvider |
| $id | строка | Идентификатор, который однозначно идентифицирует поставщик данных среди всех поставщиков данных. | yii\data\BaseDataProvider |
| $key | строка|вызываемый | Столбец, используемый в качестве ключа моделей данных. | yii\data\ArrayDataProvider |
| $keys | массив | Список значений ключей, соответствующих $models. | yii\data\BaseDataProvider |
| $modelClass | строка | Имя класса Model, который будет представлен. | yii\data\ArrayDataProvider |
| $models | массив | Список моделей данных на текущей странице. | yii\data\BaseDataProvider |
| $pagination | yii\data\Pagination|false | Объект постраничной навигации. | yii\data\BaseDataProvider |
| $sort | yii\data\Sort|boolean | Объект сортировки. | yii\data\BaseDataProvider |
| $totalCount | целое число | Общее количество возможных моделей данных. | yii\data\BaseDataProvider |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| 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\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\data\BaseDataProvider |
| 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\BaseDataProvider |
| setTotalCount() | Устанавливает общее количество моделей данных. | yii\data\BaseDataProvider |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| prepareKeys() | Подготавливает ключи, связанные с текущими доступными моделями данных. | yii\data\ArrayDataProvider |
| prepareModels() | Подготавливает модели данных, которые будут доступны на текущей странице. | yii\data\ArrayDataProvider |
| prepareTotalCount() | Возвращает значение, указывающее общее количество моделей данных в этом поставщике данных. | yii\data\ArrayDataProvider |
| sortModels() | Сортирует модели данных в соответствии с заданным определением сортировки. | yii\data\ArrayDataProvider |
Подробное описание свойств
$allModels общественное свойство
Данные, которые не постраничены и не отсортированы. При включении постраничной навигации это свойство обычно содержит больше элементов, чем $models. Элементы массива должны использовать целочисленные ключи, начинающиеся с нуля.
public array $allModels = null
$key общественное свойство
Столбец, используемый в качестве ключа моделей данных. Это может быть имя столбца или вызываемый объект, возвращающий значение ключа заданной модели данных. Если это не установлено, используется индекс массива $models.
См. также getKeys().
public string|callable $key = null
$modelClass общественное свойство (доступно начиная с версии 2.0.9)
Имя класса Model, который будет представлен. Это свойство используется для получения имён столбцов.
public string $modelClass = null
Подробное описание методов
prepareKeys() защищённый метод
Подготавливает ключи, связанные с текущими доступными моделями данных.
| защищённый массив prepareKeys ( $models ) | ||
|---|---|---|
| $models | массив |
Доступные модели данных |
| return | массив |
Ключи |
prepareModels() защищённый метод
Подготавливает модели данных, которые будут доступны на текущей странице.
| защищённый массив prepareModels ( ) | ||
|---|---|---|
| return | массив |
Доступные модели данных |
prepareTotalCount() защищённый метод
Возвращает значение, указывающее общее количество моделей данных в этом поставщике данных.
| защищённый целое число prepareTotalCount ( ) | ||
|---|---|---|
| return | целое число |
Общее количество моделей данных в этом поставщике данных. |
sortModels() защищённый метод
Сортирует модели данных в соответствии с заданным определением сортировки
| защищённый массив sortModels ( $models, $sort ) | ||
|---|---|---|
| $models | массив |
Сортируемые модели |
| $sort | yii\data\Sort |
Определение сортировки |
| return | массив |
Отсортированные модели данных |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html