Класс yii\redis\ActiveQuery
| Наследование | yii\redis\ActiveQuery » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\db\ActiveQueryInterface |
| Использует трейты | yii\db\ActiveQueryTrait, yii\db\ActiveRelationTrait, yii\db\QueryTrait |
| Доступен с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-redis/blob/master/ActiveQuery.php |
ActiveQuery представляет запрос, связанный с классом Active Record.
Объект ActiveQuery может быть обычным запросом или использоваться в контексте связи.
Экземпляры ActiveQuery обычно создаются с помощью yii\redis\ActiveRecord::find(). Связанные запросы создаются с помощью yii\redis\ActiveRecord::hasOne() и yii\redis\ActiveRecord::hasMany().
Обычный запрос
ActiveQuery в основном предоставляет следующие методы для получения результатов запроса:
- one(): возвращает единственный объект, заполненный первой строкой данных.
- all(): возвращает все записи на основе результатов запроса.
- count(): возвращает количество записей.
- sum(): возвращает сумму по указанному столбцу.
- average(): возвращает среднее значение по указанному столбцу.
- min(): возвращает минимальное значение по указанному столбцу.
- max(): возвращает максимальное значение по указанному столбцу.
- scalar(): возвращает значение первого столбца в первой строке результата запроса.
- exists(): возвращает значение, указывающее, содержит ли результат запроса данные или нет.
Вы можете использовать методы запроса, такие как where(), limit() и orderBy(), чтобы настроить параметры запроса.
ActiveQuery также предоставляет следующие дополнительные параметры запроса:
- with(): список отношений, с которыми должен выполняться этот запрос.
- indexBy(): имя столбца, по которому должен индексироваться результат запроса.
- asArray(): нужно ли возвращать каждую запись в виде массива.
Эти параметры можно настроить, используя методы с одинаковым названием. Например:
$customers = Customer::find()->with('orders')->asArray()->all();
Связанный запрос
В контексте связи ActiveQuery представляет отношение между двумя классами Active Record.
Экземпляры связанного ActiveQuery обычно создаются путем вызова yii\redis\ActiveRecord::hasOne() и yii\redis\ActiveRecord::hasMany(). Класс Active Record объявляет отношение, определив метод-геттер, который вызывает один из вышеуказанных методов и возвращает созданный объект ActiveQuery.
Связь определяется свойством $link, которое представляет ассоциацию между столбцами разных таблиц; а множественность отношения указывается свойством $multiple.
Если отношение включает в себя таблицу связи, она может быть задана методом via(). Этот метод может вызываться только в контексте связи. То же самое относится к методу inverseOf(), который отмечает отношение как обратное другому отношению.
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $asArray | boolean | Возвращать ли каждую запись в виде массива. | yii\db\ActiveQueryTrait |
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $emulateExecution | boolean | Имитировать ли фактическое выполнение запроса, возвращая пустые или ложные результаты. | yii\db\QueryTrait |
| $indexBy | string|callable | Имя столбца, по которому результаты запроса должны быть проиндексированы. | yii\db\QueryTrait |
| $inverseOf | string | Имя отношения, которое является обратным этому отношению. | yii\db\ActiveRelationTrait |
| $limit | integer|yii\db\Expression | Максимальное количество возвращаемых записей. | yii\db\QueryTrait |
| $link | array | Столбцы первичной и внешней таблиц, которые устанавливают отношение. | yii\db\ActiveRelationTrait |
| $modelClass | string | Имя класса ActiveRecord. | yii\db\ActiveQueryTrait |
| $multiple | boolean | Представляет ли этот запрос отношение к более чем одной записи. | yii\db\ActiveRelationTrait |
| $offset | integer|yii\db\Expression | Смещение с нулевым значением, с которого должны возвращаться записи. | yii\db\QueryTrait |
| $orderBy | array | Как сортировать результаты запроса. | yii\db\QueryTrait |
| $primaryModel | yii\db\ActiveRecord | Основная модель связанного запроса. | yii\db\ActiveRelationTrait |
| $via | array|object | Запрос, связанный с таблицей связи. | yii\db\ActiveRelationTrait |
| $where | string|array | Условие запроса. | yii\db\QueryTrait |
| $with | array | Список отношений, с которыми должен выполняться этот запрос | yii\db\ActiveQueryTrait |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Клонирует внутренние объекты. | yii\db\ActiveRelationTrait |
| __construct() | Конструктор. | yii\redis\ActiveQuery |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| addOrderBy() | Добавляет дополнительные столбцы ORDER BY в запрос. | yii\db\QueryTrait |
| all() | Выполняет запрос и возвращает все результаты в виде массива. | yii\redis\ActiveQuery |
| andFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| andWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| asArray() | Устанавливает свойство asArray(). | yii\db\ActiveQueryTrait |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| average() | Возвращает среднее значение указанных значений столбца. | yii\redis\ActiveQuery |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| column() | Выполняет запрос и возвращает первый столбец результата. | yii\redis\ActiveQuery |
| count() | Возвращает количество записей. | yii\redis\ActiveQuery |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| emulateExecution() | Устанавливает, следует ли эмулировать выполнение запроса, предотвращая взаимодействие с хранилищем данных. | yii\db\QueryTrait |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| exists() | Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных. | yii\redis\ActiveQuery |
| filterWhere() | Устанавливает часть WHERE запроса, но игнорирует пустые операнды. | yii\db\QueryTrait |
| findFor() | Ищет связанные записи для указанной основной записи. | yii\db\ActiveRelationTrait |
| findWith() | Ищет записи, соответствующие одному или нескольким отношениям, и заполняет их в основные модели. | yii\db\ActiveQueryTrait |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все прикреплённые к этому компоненту поведения. | yii\base\Component |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| indexBy() | Устанавливает свойство indexBy(). | yii\db\QueryTrait |
| init() | Инициализирует объект. | yii\redis\ActiveQuery |
| inverseOf() | Устанавливает имя отношения, являющегося обратным этому отношению. | yii\db\ActiveRelationTrait |
| limit() | Устанавливает часть LIMIT запроса. | yii\db\QueryTrait |
| max() | Возвращает максимальное значение указанных значений столбца. | yii\redis\ActiveQuery |
| min() | Возвращает минимальное значение указанных значений столбца. | yii\redis\ActiveQuery |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offset() | Устанавливает часть OFFSET запроса. | yii\db\QueryTrait |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| one() | Выполняет запрос и возвращает единственную строку результата. | yii\redis\ActiveQuery |
| orFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| orWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| orderBy() | Устанавливает часть ORDER BY запроса. | yii\db\QueryTrait |
| populateRelation() | Ищет связанные записи и заполняет ими основные модели. | yii\db\ActiveRelationTrait |
| scalar() | Возвращает результат запроса как скалярное значение. | yii\redis\ActiveQuery |
| sum() | Возвращает количество записей. | yii\redis\ActiveQuery |
| trigger() | Вызывает событие. | yii\base\Component |
| via() | Указывает отношение, связанное со справочной таблицей. | yii\db\ActiveRelationTrait |
| where() | Устанавливает часть WHERE запроса. | yii\db\QueryTrait |
| with() | Указывает отношения, с которыми должен выполняться этот запрос. | yii\db\ActiveQueryTrait |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| createModels() | Преобразует найденные строки в экземпляры моделей | yii\db\ActiveQueryTrait |
| executeScript() | Выполняет скрипт, созданный с помощью yii\redis\LuaScriptBuilder | yii\redis\ActiveQuery |
| filterCondition() | Удаляет пустые операнды из заданного условия запроса. | yii\db\QueryTrait |
| isEmpty() | Возвращает значение, указывающее, является ли заданное значение "пустым". | yii\db\QueryTrait |
| normalizeOrderBy() | Нормализует формат данных ORDER BY | yii\db\QueryTrait |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_INIT | \yii\redis\Event | Событие, которое срабатывает при инициализации запроса через init(). | yii\redis\ActiveQuery |
Подробное описание методов
__construct() public method
Конструктор.
| public void __construct ( $modelClass, $config = [] ) | ||
|---|---|---|
| $modelClass | array |
Класс модели, связанный с этим запросом |
| $config | array |
Настройки, которые необходимо применить к новосозданному объекту запроса |
all() public method
Выполняет запрос и возвращает все результаты в виде массива.
| public array|yii\redis\ActiveRecord[] all ( $db = null ) | ||
|---|---|---|
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | array|yii\redis\ActiveRecord[] |
Результаты запроса. Если запрос не возвращает никаких результатов, возвращается пустой массив. |
average() public method
Возвращает среднее значение указанных значений столбца.
| public integer average ( $column, $db = null ) | ||
|---|---|---|
| $column | string |
Имя столбца или выражение. Убедитесь, что вы правильно указываете имена столбцов в выражении. |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | integer |
Среднее значение указанных значений столбца. |
column() public method
Выполняет запрос и возвращает первый столбец результата.
| public array column ( $column, $db = null ) | ||
|---|---|---|
| $column | string |
Имя столбца для выбора |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | array |
Первый столбец результата запроса. Если запрос не возвращает никаких результатов, возвращается пустой массив. |
count() public method
Возвращает количество записей.
| public integer count ( $q = '*', $db = null ) | ||
|---|---|---|
| $q | string |
Выражение COUNT. Этот параметр игнорируется в этой реализации. |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | integer |
Количество записей |
executeScript() protected method
Выполняет скрипт, созданный с помощью yii\redis\LuaScriptBuilder
| protected array|boolean|null|string executeScript ( $db, $type, $columnName = null ) | ||
|---|---|---|
| $db | yii\redis\Connection|null |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| $type | string |
Тип генерируемого скрипта |
| $columnName | string | |
| throws | yii\base\NotSupportedException | |
exists() public method
Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных.
| public boolean exists ( $db = null ) | ||
|---|---|---|
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | boolean |
Содержит ли результат запроса какую-либо строку данных. |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT. Если вы переопределяете этот метод, убедитесь, что вызываете родительскую реализацию в конце, чтобы гарантировать срабатывание события.
| public void init ( ) |
|---|
max() public method
Возвращает максимальное значение указанных значений столбца.
| public integer max ( $column, $db = null ) | ||
|---|---|---|
| $column | string |
Имя столбца или выражение. Убедитесь, что вы правильно указываете имена столбцов в выражении. |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | integer |
Максимальное значение указанных значений столбца. |
min() public method
Возвращает минимальное значение указанных значений столбца.
| public integer min ( $column, $db = null ) | ||
|---|---|---|
| $column | string |
Имя столбца или выражение. Убедитесь, что вы правильно указываете имена столбцов в выражении. |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | integer |
Минимальное значение указанных значений столбца. |
one() public method
Выполняет запрос и возвращает одну строку результата.
| public yii\redis\ActiveRecord|array|null one ( $db = null ) | ||
|---|---|---|
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | yii\redis\ActiveRecord|array|null |
Одна строка результата запроса. В зависимости от настроек asArray(), результат запроса может быть массивом или объектом ActiveRecord. Null будет возвращен, если запрос не вернет ничего. |
scalar() public method
Возвращает результат запроса как скалярное значение.
Возвращаемое значение будет указанным атрибутом в первой записи результатов запроса.
| public string scalar ( $attribute, $db = null ) | ||
|---|---|---|
| $attribute | string |
Имя атрибута для выбора |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не указан, используется компонент |
| return | string |
Значение указанного атрибута в первой записи результата запроса. Null возвращается, если результат запроса пустой. |
sum() public method
Возвращает количество записей.
| public integer sum ( $column, $db = null ) | ||
|---|---|---|
| $column | string |
Столбец для суммирования |
| $db | yii\redis\Connection |
Подключение к базе данных, используемое для выполнения запроса. Если этот параметр не задан, будет использован компонент |
| return | integer |
Количество записей |
Подробности события
EVENT_INIT событие типа \yii\redis\Event
Событие, которое срабатывает при инициализации запроса с помощью init().
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-redis-activequery.html