Spec-Zone.ru › Yii 2.0

Класс yii\data\SqlDataProvider

Все классы | Свойства | Методы
Наследование yii\data\SqlDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\data\DataProviderInterface
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/data/SqlDataProvider.php

SqlDataProvider реализует поставщик данных, основанный на простом SQL-запросе.

SqlDataProvider предоставляет данные в виде массивов, каждый из которых представляет строку результата запроса.

Как и другие поставщики данных, SqlDataProvider также поддерживает сортировку и постраничный вывод. Для этого он изменяет предоставленный $sql запрос с добавлением клаузов "ORDER BY" и "LIMIT". Вы можете настроить свойства $sort и $pagination для настройки поведения сортировки и постраничного вывода.

SqlDataProvider может быть использован следующим образом:

$count = Yii::$app->db->createCommand('
    SELECT COUNT(*) FROM user WHERE status=:status
', [':status' => 1])->queryScalar();

$dataProvider = new SqlDataProvider([
    'sql' => 'SELECT * FROM user WHERE status=:status',
    'params' => [':status' => 1],
    'totalCount' => $count,
    'sort' => [
        'attributes' => [
            'age',
            'name' => [
                'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
                'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
                'default' => SORT_DESC,
                'label' => 'Name',
            ],
        ],
    ],
    'pagination' => [
        'pageSize' => 20,
    ],
]);

// get the user records in the current page
$models = $dataProvider->getModels();

Примечание: если вы хотите использовать функцию постраничного вывода, необходимо настроить свойство $totalCount на общее количество строк (без постраничного вывода). А если вы хотите использовать функцию сортировки, необходимо настроить свойство $sort, чтобы поставщик знал, по каким столбцам можно сортировать.

Для более подробной информации и использования SqlDataProvider, см. статью руководства по поставщикам данных.

Открытые свойства

Свойство Тип Описание Определено в
$behaviors yii\base\Behavior[] Список прикрепленных к данному компоненту поведения yii\base\Component
$count integer Количество моделей данных на текущей странице. yii\data\BaseDataProvider
$db yii\db\Connection|array|string Объект подключения к БД или идентификатор компонента приложения для подключения к БД. yii\data\SqlDataProvider
$id string Идентификатор, уникально определяющий поставщик данных среди всех поставщиков данных. yii\data\BaseDataProvider
$key string|callable Столбец, используемый в качестве ключа моделей данных. yii\data\SqlDataProvider
$keys array Список значений ключей, соответствующих $models. yii\data\BaseDataProvider
$models array Список моделей данных на текущей странице. yii\data\BaseDataProvider
$pagination yii\data\Pagination|false Объект постраничного вывода. yii\data\BaseDataProvider
$params array Параметры (имя=>значение) для привязки к SQL-запросу. yii\data\SqlDataProvider
$sort yii\data\Sort|boolean Объект сортировки. yii\data\BaseDataProvider
$sql string SQL-запрос, используемый для получения строк данных. yii\data\SqlDataProvider
$totalCount integer Общее количество возможных моделей данных. 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\SqlDataProvider
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\SqlDataProvider
prepareModels() Подготавливает модели данных, которые будут доступны на текущей странице. yii\data\SqlDataProvider
prepareTotalCount() Возвращает значение, указывающее общее количество моделей данных в этом поставщике данных. yii\data\SqlDataProvider

Подробное описание свойств

$db публичное свойство

Объект подключения к БД или идентификатор компонента приложения для подключения к БД. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.

public yii\db\Connection|array|string $db = 'db'

$key публичное свойство

Столбец, используемый в качестве ключа моделей данных. Это может быть имя столбца или вызываемый объект, возвращающий значение ключа заданной модели данных.

Если это не задано, будут использованы ключи массива $models.

public string|callable $key = null

$params публичное свойство

Параметры (имя=>значение), которые будут связаны с SQL-запросом.

public array $params = []

$sql публичное свойство

SQL-запрос, используемый для извлечения строк данных.

public string $sql = null

Подробное описание методов

init() public метод

Инициализирует компонент подключения к БД.

Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на действительное подключение к БД.

public void init ( )
throws yii\base\InvalidConfigException

если $db недействителен.

prepareKeys() защищённый метод

Подготавливает ключи, связанные с текущими доступными моделями данных.

protected массив prepareKeys ( $models )
$models массив

Доступные модели данных

возвращает массив

Ключи

prepareModels() защищённый метод

Подготавливает модели данных, которые будут доступны на текущей странице.

protected массив prepareModels ( )
возвращает массив

Доступные модели данных

prepareTotalCount() защищённый метод

Возвращает значение, указывающее общее количество моделей данных в этом поставщике данных.

protected целое число prepareTotalCount ( )
возвращает целое число

Общее количество моделей данных в этом поставщике данных.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-data-sqldataprovider.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API