Класс 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