Класс yii\db\ActiveQuery
| Наследование | yii\db\ActiveQuery » yii\db\Query » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\db\ActiveQueryInterface, yii\db\QueryInterface |
| Используемые трейты | yii\db\ActiveQueryTrait, yii\db\ActiveRelationTrait, yii\db\QueryTrait |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveQuery.php |
ActiveQuery представляет запрос к БД, связанный с классом Active Record.
ActiveQuery может быть обычным запросом или использоваться в реляционном контексте.
Экземпляры ActiveQuery обычно создаются с помощью yii\db\ActiveRecord::find() и yii\db\ActiveRecord::findBySql(). Реляционные запросы создаются с помощью yii\db\ActiveRecord::hasOne() и yii\db\ActiveRecord::hasMany().
Обычный запрос
ActiveQuery предоставляет следующие методы для получения результатов запроса:
- one(): возвращает одну запись, заполненную первой строкой данных.
- all(): возвращает все записи, основанные на результатах запроса.
- count(): возвращает количество записей.
- sum(): возвращает сумму по указанному столбцу.
- average(): возвращает среднее значение по указанному столбцу.
- min(): возвращает минимальное значение по указанному столбцу.
- max(): возвращает максимальное значение по указанному столбцу.
- scalar(): возвращает значение первого столбца в первой строке результата запроса.
- column(): возвращает значение первого столбца в результате запроса.
- exists(): возвращает значение, указывающее, содержит ли результат запроса данные или нет.
Так как ActiveQuery расширяет yii\db\Query, можно использовать методы запросов, такие как where(), orderBy() для настройки параметров запроса.
ActiveQuery также предоставляет следующие дополнительные параметры запроса:
- with(): список отношений, с которыми должен выполняться этот запрос.
- joinWith(): повторное использование определения запроса отношения для добавления соединения к запросу.
- indexBy(): имя столбца, по которому должен индексироваться результат запроса.
- asArray(): нужно ли возвращать каждую запись в виде массива.
Эти параметры можно настроить с помощью методов с таким же именем. Например:
$customers = Customer::find()->with('orders')->asArray()->all();
Реляционный запрос
В реляционном контексте ActiveQuery представляет отношение между двумя классами Active Record.
Реляционные экземпляры ActiveQuery обычно создаются с помощью вызовов yii\db\ActiveRecord::hasOne() и yii\db\ActiveRecord::hasMany(). Класс Active Record объявляет отношение, определяя метод-геттер, который вызывает один из этих методов и возвращает созданный объект ActiveQuery.
Отношение задаётся через $link, который представляет ассоциацию между столбцами разных таблиц; а множественность отношения указывается через $multiple.
Если отношение включает промежуточную таблицу, её можно указать с помощью метода via() или viaTable(). Эти методы можно вызывать только в реляционном контексте. То же самое относится к inverseOf(), который отмечает отношение как обратное другому отношению, и onCondition(), который добавляет условие, которое должно быть добавлено к условию соединения реляционного запроса.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $asArray | boolean | Возвращать каждую запись как массив. | yii\db\ActiveQueryTrait |
| $behaviors | yii\base\Behavior[] | Список присоединённых к данному компоненту поведений. | yii\base\Component |
| $distinct | boolean | Выбирать только уникальные строки данных. | yii\db\Query |
| $emulateExecution | boolean | Эмулировать фактическое выполнение запроса, возвращая пустые или ложные результаты. | yii\db\QueryTrait |
| $from | array | Таблица(ы), из которой(ых) выбираются данные. | yii\db\Query |
| $groupBy | array | Как сгруппировать результаты запроса. | yii\db\Query |
| $having | string|array|yii\db\Expression | Условие, которое должно быть применено в предложении GROUP BY. | yii\db\Query |
| $indexBy | string|callable | Имя столбца, по которому должны индексироваться результаты запроса. | yii\db\QueryTrait |
| $inverseOf | string | Имя связи, которая является обратной данной связи. | yii\db\ActiveRelationTrait |
| $join | array | Как объединить с другими таблицами. | yii\db\Query |
| $joinWith | array | Список связей, с которыми должен быть соединён данный запрос. | yii\db\ActiveQuery |
| $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 |
| $on | string|array | Условие объединения, которое должно быть использовано, когда этот запрос используется в контексте связи. | yii\db\ActiveQuery |
| $orderBy | array | Как отсортировать результаты запроса. | yii\db\QueryTrait |
| $params | array | Список значений параметров запроса, индексированных по заменителям параметров. | yii\db\Query |
| $primaryModel | yii\db\ActiveRecord | Основная модель реляционного запроса. | yii\db\ActiveRelationTrait |
| $select | array | Столбцы, которые выбираются. | yii\db\Query |
| $selectOption | string | Дополнительный параметр, который должен быть добавлен к ключевому слову «SELECT». | yii\db\Query |
| $sql | string | SQL-запрос для получения записей AR. | yii\db\ActiveQuery |
| $tablesUsedInFrom | string[] | Имена таблиц, индексированные по псевдонимам | yii\db\ActiveQuery |
| $union | array | Используется для построения предложения UNION(ов) в SQL-запросе. | yii\db\Query |
| $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\db\ActiveQuery |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| addGroupBy() | Добавляет дополнительные столбцы группировки к существующим. | yii\db\Query |
| addOrderBy() | Добавляет дополнительные столбцы ORDER BY в запрос. | yii\db\QueryTrait |
| addParams() | Добавляет дополнительные параметры, которые будут связаны с запросом. | yii\db\Query |
| addSelect() | Добавляет дополнительные столбцы к части SELECT запроса. | yii\db\Query |
| alias() | Определяет псевдоним для таблицы, определенной в $modelClass. | yii\db\ActiveQuery |
| all() | Выполняет запрос и возвращает все результаты в виде массива. | yii\db\ActiveQuery |
| andFilterCompare() | Добавляет условие фильтрации для конкретного столбца и позволяет пользователю выбрать оператор фильтрации. | yii\db\Query |
| andFilterHaving() | Добавляет дополнительное условие HAVING к существующему, но игнорирует пустые операнды. | yii\db\Query |
| andFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| andHaving() | Добавляет дополнительное условие HAVING к существующему. | yii\db\Query |
| andOnCondition() | Добавляет дополнительное условие ON к существующему. | yii\db\ActiveQuery |
| andWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| asArray() | Устанавливает свойство asArray(). | yii\db\ActiveQueryTrait |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| average() | Возвращает среднее значение указанных значений столбца. | yii\db\Query |
| batch() | Начинает пакетный запрос. | yii\db\Query |
| behaviors() | Возвращает список поведений, по которым этот компонент должен вести себя. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное имя квалифицированного класса. | yii\base\Object |
| column() | Выполняет запрос и возвращает первый столбец результата. | yii\db\Query |
| count() | Возвращает количество записей. | yii\db\Query |
| create() | Создаёт новый объект Query и копирует значения его свойств из существующего. | yii\db\Query |
| createCommand() | Создаёт команду DB, которая может быть использована для выполнения этого запроса. | yii\db\ActiveQuery |
| detachBehavior() | Открепляет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Открепляет все поведения от компонента. | yii\base\Component |
| distinct() | Устанавливает значение, указывающее, нужно ли SELECT DISTINCT или нет. | yii\db\Query |
| each() | Начинает пакетный запрос и извлекает данные строку за строкой. | yii\db\Query |
| emulateExecution() | Устанавливает, нужно ли эмулировать выполнение запроса, предотвращая любое взаимодействие с хранилищем данных. | yii\db\QueryTrait |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| exists() | Возвращает значение, указывающее, содержит ли результат запроса хоть одну строку данных. | yii\db\Query |
| filterHaving() | Устанавливает часть HAVING запроса, но игнорирует пустые операнды. | yii\db\Query |
| filterWhere() | Устанавливает часть WHERE запроса, но игнорирует пустые операнды. | yii\db\QueryTrait |
| findFor() | Находит связанные записи для указанной первичной записи. | yii\db\ActiveRelationTrait |
| findWith() | Находит записи, соответствующие одному или нескольким отношениям, и заполняет их в первичные модели. | yii\db\ActiveQueryTrait |
| from() | Устанавливает часть FROM запроса. | yii\db\Query |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, прикреплённые к этому компоненту. | yii\base\Component |
| getTablesUsedInFrom() | Возвращает имена таблиц, используемых в from(), индексированные по псевдонимам. | yii\db\ActiveQuery |
| groupBy() | Устанавливает часть GROUP BY запроса. | yii\db\Query |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определён ли свойство для данного компонента. | yii\base\Component |
| having() | Устанавливает часть HAVING запроса. | yii\db\Query |
| indexBy() | Устанавливает свойство indexBy(). | yii\db\QueryTrait |
| init() | Инициализирует объект. | yii\db\ActiveQuery |
| innerJoin() | Добавляет часть INNER JOIN к запросу. | yii\db\Query |
| innerJoinWith() | Внутреннее объединение со указанными отношениями. | yii\db\ActiveQuery |
| inverseOf() | Устанавливает имя отношения, которое является обратным данному. | yii\db\ActiveRelationTrait |
| join() | Добавляет часть JOIN к запросу. | yii\db\Query |
| joinWith() | Объединение с указанными отношениями. | yii\db\ActiveQuery |
| leftJoin() | Добавляет часть LEFT OUTER JOIN к запросу. | yii\db\Query |
| limit() | Устанавливает часть LIMIT запроса. | yii\db\QueryTrait |
| max() | Возвращает максимальное значение указанных значений столбца. | yii\db\Query |
| min() | Возвращает минимальное значение указанных значений столбца. | yii\db\Query |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| offset() | Устанавливает часть OFFSET запроса. | yii\db\QueryTrait |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| onCondition() | Устанавливает условие ON для реляционного запроса. | yii\db\ActiveQuery |
| one() | Выполняет запрос и возвращает одну строку результата. | yii\db\ActiveQuery |
| orFilterHaving() | Добавляет дополнительное условие HAVING к существующему, но игнорирует пустые операнды. | yii\db\Query |
| orFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| orHaving() | Добавляет дополнительное условие HAVING к существующему. | yii\db\Query |
| orOnCondition() | Добавляет дополнительное условие ON к существующему. | yii\db\ActiveQuery |
| orWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| orderBy() | Устанавливает часть ORDER BY запроса. | yii\db\QueryTrait |
| params() | Устанавливает параметры, которые будут связаны с запросом. | yii\db\Query |
| populate() | Преобразует результаты запроса в формат, указанный в этом запросе. | yii\db\ActiveQuery |
| populateRelation() | Находит связанные записи и заполняет ими основные модели. | yii\db\ActiveRelationTrait |
| prepare() | Подготавливает для построения SQL. | yii\db\ActiveQuery |
| rightJoin() | Добавляет часть RIGHT OUTER JOIN к запросу. | yii\db\Query |
| scalar() | Возвращает результат запроса как скалярное значение. | yii\db\Query |
| select() | Устанавливает часть SELECT запроса. | yii\db\Query |
| sum() | Возвращает сумму указанных значений столбца. | yii\db\Query |
| trigger() | Срабатывает событие. | yii\base\Component |
| union() | Добавляет SQL-запрос с помощью оператора UNION. | yii\db\Query |
| via() | Указывает отношение, связанное с таблицей соединения. | yii\db\ActiveRelationTrait |
| viaTable() | Указывает таблицу соединения для реляционного запроса. | yii\db\ActiveQuery |
| where() | Устанавливает часть WHERE запроса. | yii\db\QueryTrait |
| with() | Указывает отношения, с которыми должен выполняться этот запрос. | yii\db\ActiveQueryTrait |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createModels() | Преобразует найденные строки в экземпляры моделей | yii\db\ActiveQueryTrait |
| filterCondition() | Удаляет пустые операнды из данного условия запроса. | yii\db\QueryTrait |
| getPrimaryTableName() | yii\db\ActiveQuery | |
| isEmpty() | Возвращает значение, указывающее, является ли данное значение "пустым". | yii\db\QueryTrait |
| normalizeOrderBy() | Нормализует формат данных ORDER BY | yii\db\QueryTrait |
| queryScalar() | Запрашивает скалярное значение, сначала установив select(). | yii\db\ActiveQuery |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_INIT | \yii\db\Event | Событие, которое срабатывает при инициализации запроса с помощью init(). | yii\db\ActiveQuery |
Подробное описание свойств
$joinWith общедоступное свойство
Список отношений, с которыми этот запрос должен быть объединён
public array $joinWith = null
$on общедоступное свойство
Условие объединения, используемое, когда этот запрос используется в реляционном контексте. Условие будет использоваться в части ON при вызове yii\db\ActiveQuery::joinWith(). В противном случае, условие будет использоваться в части WHERE запроса. Обратитесь к yii\db\Query::where() по поводу того, как указать этот параметр.
См. также onCondition().
public string|array $on = null
$sql общедоступное свойство
SQL-запрос для извлечения записей AR. Он устанавливается с помощью yii\db\ActiveRecord::findBySql().
public string $sql = null
$tablesUsedInFrom общедоступное только для чтения свойство
Имена таблиц, индексированные по псевдонимам
public string[] getTablesUsedInFrom ( )
Подробное описание методов
__construct() public method
Конструктор.
| public void __construct ( $modelClass, $config = [] ) | ||
|---|---|---|
| $modelClass | string |
Класс модели, связанный с этим запросом |
| $config | array |
Конфигурации, которые будут применены к вновь созданному объекту запроса |
alias() public method (доступно с версии 2.0.7)
Определить псевдоним для таблицы, определённой в $modelClass.
Этот метод скорректирует from(), чтобы уже определённый псевдоним был перезаписан. Если он не был определён, from() будет заполнен заданным псевдонимом.
| public $this alias ( $alias ) | ||
|---|---|---|
| $alias | string |
Псевдоним таблицы. |
| return | $this |
Объект запроса. |
all() public method
Выполняет запрос и возвращает все результаты в виде массива.
| public array|yii\db\ActiveRecord[] all ( $db = null ) | ||
|---|---|---|
| $db | yii\db\Connection |
Соединение с базой данных, используемое для создания команды базы данных. Если null, будет использовано соединение с базой данных, возвращённое $modelClass. |
| return | array|yii\db\ActiveRecord[] |
Результаты запроса. Если запрос не вернул ничего, будет возвращён пустой массив. |
andOnCondition() public method
Добавляет дополнительное условие ON к существующему.
Новое условие и существующее будут объединены с помощью оператора 'AND'.
См. также:
| public $this andOnCondition ( $condition, $params = [] ) | ||
|---|---|---|
| $condition | string|array |
Новое условие ON. Обратитесь к where() для указания этого параметра. |
| $params | array |
Параметры (имя => значение) для связывания с запросом. |
| return | $this |
Объект запроса. |
createCommand() public method
Создаёт команду базы данных, которая может использоваться для выполнения этого запроса.
| public yii\db\Command createCommand ( $db = null ) | ||
|---|---|---|
| $db | yii\db\Connection|null |
Соединение с базой данных, используемое для создания команды базы данных. Если |
| return | yii\db\Command |
Созданный экземпляр команды базы данных. |
getPrimaryTableName() protected method (доступно с версии 2.0.12)
| protected string getPrimaryTableName ( ) | ||
|---|---|---|
| return | string |
Имя основной таблицы |
getTablesUsedInFrom() public method (доступно с версии 2.0.12)
Возвращает имена таблиц, используемых в from(), индексированные по псевдонимам.
И псевдонимы, и имена заключены в {{ и }}.
| public string[] getTablesUsedInFrom ( ) | ||
|---|---|---|
| return | string[] |
Имена таблиц, индексированные по псевдонимам |
| throws | yii\base\InvalidConfigException | |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT. Если вы переопределяете этот метод, убедитесь, что вызываете родительскую реализацию в конце, чтобы гарантировать срабатывание события.
| public void init ( ) |
|---|
innerJoinWith() public method
Внутреннее соединение со специфическими отношениями.
Это метод-костыль для joinWith() с типом соединения "INNER JOIN". Обратитесь к joinWith() для подробного использования этого метода.
См. также joinWith().
| public $this innerJoinWith ( $with, $eagerLoading = true ) | ||
|---|---|---|
| $with | string|array |
Отношения, с которыми нужно выполнить соединение. |
| $eagerLoading | boolean|array |
Выполнять ли ленивую загрузку отношений. |
| return | $this |
Объект запроса. |
joinWith() public method
Соединение со специфическими отношениями.
Этот метод позволяет повторно использовать существующие определения отношений для выполнения запросов JOIN. Основываясь на определении указанных отношений, метод добавит одну или несколько инструкций JOIN к текущему запросу.
Если параметр $eagerLoading равен true, метод также выполнит ленивую загрузку для указанных отношений, что эквивалентно вызову with() с указанными отношениями.
Обратите внимание, что, поскольку будет выполнено соединение, вы несете ответственность за разграничение имён столбцов.
Этот метод отличается от with() тем, что он построит и выполнит инструкцию JOIN SQL для основной таблицы. И когда $eagerLoading равно true, он также вызовет with() с указанными отношениями.
| public $this joinWith ( $with, $eagerLoading = true, $joinType = 'LEFT JOIN' ) | ||
|---|---|---|
| $with | string|array |
Отношения, с которыми нужно выполнить соединение. Может быть строкой, представляющей имя отношения, или массивом со следующей семантикой:
Имя отношения может необязательно содержать псевдоним для таблицы отношения (например, Подотношения также могут быть указаны, см. with() для синтаксиса. Ниже приведены некоторые примеры: // find all orders that contain books, and eager loading "books"
Order::find()->joinWith('books', true, 'INNER JOIN')->all();
// find all orders, eager loading "books", and sort the orders and books by the book names.
Order::find()->joinWith([
'books' => function (\yii\db\ActiveQuery $query) {
$query->orderBy('item.name');
}
])->all();
// find all orders that contain books of the category 'Science fiction', using the alias "b" for the books table
Order::find()->joinWith(['books b'], true, 'INNER JOIN')->where(['b.category' => 'Science fiction'])->all();
Синтаксис псевдонимов доступен с версии 2.0.7. |
| $eagerLoading | boolean|array |
Выполнять ли ленивую загрузку отношений, указанных в |
| $joinType | string|array |
Тип соединения отношений, указанных в |
| return | $this |
Объект запроса. |
onCondition() public method
Устанавливает условие ON для запроса отношений.
Условие будет использовано в части ON при вызове yii\db\ActiveQuery::joinWith(). В противном случае условие будет использовано в части WHERE запроса.
Используйте этот метод для указания дополнительных условий при объявлении отношения в классе yii\db\ActiveRecord:
public function getActiveUsers()
{
return $this->hasMany(User::className(), ['id' => 'user_id'])
->onCondition(['active' => true]);
}
Обратите внимание, что это условие применяется как при выполнении объединения, так и при получении связанных записей. Таким образом, в условии можно использовать только поля связанной таблицы. Попытка доступа к полям основной записи приведет к ошибке в запросе без объединения.
| public $this onCondition ( $condition, $params = [] ) | ||
|---|---|---|
| $condition | строка|массив |
Условие ON. Обратитесь к yii\db\Query::where(), чтобы узнать, как указать этот параметр. |
| $params | массив |
Параметры (имя => значение), которые будут связаны с запросом. |
| return | $this |
Объект самого запроса |
one() public method
Выполняет запрос и возвращает единственную строку результата.
| public yii\db\ActiveRecord|массив|null one ( $db = null ) | ||
|---|---|---|
| $db | yii\db\Connection|null |
Подключение к БД, используемое для создания команды БД. Если |
| return | yii\db\ActiveRecord|массив|null |
Одна строка результата запроса. В зависимости от настройки asArray(), результат запроса может быть либо массивом, либо объектом ActiveRecord. |
orOnCondition() public method
Добавляет дополнительное условие ON к существующему.
Новое условие и существующее будут объединены с помощью оператора 'OR'.
См. также:
| public $this orOnCondition ( $condition, $params = [] ) | ||
|---|---|---|
| $condition | строка|массив |
Новое условие ON. Обратитесь к where(), чтобы узнать, как указать этот параметр. |
| $params | массив |
Параметры (имя => значение), которые будут связаны с запросом. |
| return | $this |
Объект самого запроса |
populate() public method
Преобразует сырые результаты запроса в формат, указанный этим запросом.
Этот метод используется внутри для преобразования данных, полученных из базы данных, в формат, необходимый для этого запроса.
| public массив populate ( $rows ) | ||
|---|---|---|
| $rows | массив |
Сырой результат запроса из базы данных |
| return | массив |
Преобразованный результат запроса |
prepare() public method
Готовит к построению SQL.
Этот метод вызывается yii\db\QueryBuilder, когда он начинает строить SQL из объекта запроса. Вы можете переопределить этот метод, чтобы выполнить некоторые окончательные подготовительные работы при преобразовании запроса в оператор SQL.
| public $this prepare ( $builder ) | ||
|---|---|---|
| $builder | yii\db\QueryBuilder | |
| return | $this |
Подготовленный объект запроса, который будет использоваться yii\db\QueryBuilder для построения SQL |
queryScalar() protected method
Выполняет запрос скалярного значения, установив select() сначала.
Восстанавливает значение select, чтобы сделать этот запрос повторно используемым.
| protected boolean|string queryScalar ( $selectExpression, $db ) | ||
|---|---|---|
| $selectExpression | строка|yii\db\Expression | |
| $db | yii\db\Connection|null | |
viaTable() public method
Указывает таблицу соединения для реляционного запроса.
Используйте этот метод для указания таблицы соединения при объявлении отношения в классе yii\db\ActiveRecord:
public function getItems()
{
return $this->hasMany(Item::className(), ['id' => 'item_id'])
->viaTable('order_item', ['order_id' => 'id']);
}
См. также via().
| public $this viaTable ( $tableName, $link, callable $callable = null ) | ||
|---|---|---|
| $tableName | строка |
Имя таблицы соединения. |
| $link | массив |
Связь между таблицей соединения и таблицей, связанной с $primaryModel. Ключи массива представляют столбцы в таблице соединения, а значения — столбцы в таблице $primaryModel. |
| $callable | callable |
Обратный вызов PHP для настройки отношения, связанного с таблицей соединения. Его сигнатура должна быть |
| return | $this |
Объект самого запроса |
Подробности событий
EVENT_INIT событие типа \yii\db\Event
Событие, которое срабатывает при инициализации запроса с помощью init().
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-activequery.html