Интерфейс yii\db\ActiveQueryInterface
| Расширяет | yii\db\QueryInterface |
|---|---|
| Реализовано в | yii\db\ActiveQuery, yii\elasticsearch\ActiveQuery, yii\mongodb\ActiveQuery, yii\mongodb\file\ActiveQuery, yii\redis\ActiveQuery, yii\sphinx\ActiveQuery |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveQueryInterface.php |
ActiveQueryInterface определяет общий интерфейс, который должны реализовывать классы запросов активных записей.
Включает методы для обычных запросов, возвращающих активные записи, а также для реляционных запросов, в которых запрос представляет связь между двумя классами активных записей и вернёт только связанные записи.
Класс, реализующий этот интерфейс, также должен использовать yii\db\ActiveQueryTrait и yii\db\ActiveRelationTrait.
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| addOrderBy() | Добавляет дополнительные столбцы ORDER BY в запрос. | yii\db\QueryInterface |
| all() | Выполняет запрос и возвращает все результаты в виде массива. | yii\db\QueryInterface |
| andFilterWhere() | Добавляет дополнительное условие WHERE к существующему, игнорируя пустые параметры. | yii\db\QueryInterface |
| andWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryInterface |
| asArray() | Устанавливает свойство asArray(). | yii\db\ActiveQueryInterface |
| count() | Возвращает количество записей. | yii\db\QueryInterface |
| emulateExecution() | Устанавливает, нужно ли эмулировать выполнение запроса, предотвращая любое взаимодействие с хранилищем данных. | yii\db\QueryInterface |
| exists() | Возвращает значение, указывающее, содержит ли результат запроса какую-либо строку данных. | yii\db\QueryInterface |
| filterWhere() | Устанавливает часть WHERE запроса, игнорируя пустые параметры. | yii\db\QueryInterface |
| findFor() | Ищет связанные записи для указанной основной записи. | yii\db\ActiveQueryInterface |
| indexBy() | Устанавливает свойство indexBy(). | yii\db\ActiveQueryInterface |
| limit() | Устанавливает часть LIMIT запроса. | yii\db\QueryInterface |
| offset() | Устанавливает часть OFFSET запроса. | yii\db\QueryInterface |
| one() | Выполняет запрос и возвращает единственную строку результата. | yii\db\ActiveQueryInterface |
| orFilterWhere() | Добавляет дополнительное условие WHERE к существующему, игнорируя пустые параметры. | yii\db\QueryInterface |
| orWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryInterface |
| orderBy() | Устанавливает часть ORDER BY запроса. | yii\db\QueryInterface |
| via() | Указывает отношение, связанное со таблицей соединения для использования в реляционном запросе. | yii\db\ActiveQueryInterface |
| where() | Устанавливает часть WHERE запроса. | yii\db\QueryInterface |
| with() | Указывает отношения, с которыми должен быть выполнен этот запрос. | yii\db\ActiveQueryInterface |
Подробное описание методов
asArray() public abstract method
Устанавливает свойство asArray().
| public abstract $this asArray ( $value = true ) | ||
|---|---|---|
| $value | boolean |
Указывает, нужно ли возвращать результаты запроса в виде массивов вместо объектов Active Record. |
| return | $this |
Сам объект запроса |
findFor() public abstract method
Находит связанные записи для указанной основной записи.
Этот метод вызывается, когда к связи Active Record обращаются в режиме ленивой загрузки.
| public abstract mixed findFor ( $name, $model ) | ||
|---|---|---|
| $name | string |
Имя связи |
| $model | yii\db\ActiveRecordInterface |
Основная модель |
| return | mixed |
Связанная запись(и) |
indexBy() public abstract method
Устанавливает свойство indexBy().
| public abstract $this indexBy ( $column ) | ||
|---|---|---|
| $column | string|callable |
Имя столбца, по которому нужно индексировать результаты запроса. Это также может быть вызываемый объект (например, анонимная функция), который возвращает значение индекса на основе предоставленных данных строки или модели. Подпись вызываемого объекта должна быть: // $model is an AR instance when `asArray` is false,
// or an array of column values when `asArray` is true.
function ($model)
{
// return the index value corresponding to $model
}
|
| return | $this |
Сам объект запроса |
one() public abstract method
Выполняет запрос и возвращает одну строку результата.
| public abstract yii\db\ActiveRecordInterface|array|null one ( $db = null ) | ||
|---|---|---|
| $db | yii\db\Connection |
Подключение к базе данных, используемое для создания команды базы данных. Если |
| return | yii\db\ActiveRecordInterface|array|null |
Одна строка результата запроса. В зависимости от настроек asArray(), результат запроса может быть либо массивом, либо объектом ActiveRecord. |
via() public abstract method
Определяет связь, связанную с таблицей соединения, для использования в реляционном запросе.
| public abstract $this via ( $relationName, callable $callable = null ) | ||
|---|---|---|
| $relationName | string |
Имя связи. Это относится к связи, объявленной в primaryModel связи. |
| $callable | callable |
Обратный вызов PHP для настройки связи, связанной с таблицей соединения. Его подпись должна быть |
| return | $this |
Сам объект связи. |
with() public abstract method
Определяет связи, с которыми должен быть выполнен этот запрос.
Параметры этого метода могут быть либо одним, либо несколькими строками, либо одним массивом имен связей и необязательными обратными вызовами для настройки связей.
Имя связи может ссылаться на связь, определённую в modelClass, или на подсвязь, которая представляет связь связанной записи. Например, orders.address означает связь address , определённую в классе модели, соответствующей связи orders.
Ниже приведены примеры использования:
// find customers together with their orders and country
Customer::find()->with('orders', 'country')->all();
// find customers together with their orders and the orders' shipping address
Customer::find()->with('orders.address')->all();
// find customers together with their country and orders of status 1
Customer::find()->with([
'orders' => function (\yii\db\ActiveQuery $query) {
$query->andWhere('status = 1');
},
'country',
])->all();
| public abstract $this with ( ) | ||
|---|---|---|
| return | $this |
Сам объект запроса |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-activequeryinterface.html