Trait yii\db\QueryTrait
Trait BaseQuery представляет собой минимальный набор методов для запроса к базе данных.
Он должен использоваться в классе, реализующем yii\db\QueryInterface.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $emulateExecution | boolean | Имитировать выполнение запроса, возвращая пустые или ложные результаты. | yii\db\QueryTrait |
| $indexBy | string|callable | Имя столбца, по которому должны индексироваться результаты запроса. Также может быть вызываемым объектом (например, анонимной функцией), возвращающим значение индекса на основе данных строки. Более подробная информация в indexBy(). Это свойство используется только в all(). | yii\db\QueryTrait |
| $limit | integer|yii\db\Expression | Максимальное количество записей, которое должно быть возвращено. Может быть экземпляром yii\db\Expression. Если не задано или меньше 0, то ограничения нет. | yii\db\QueryTrait |
| $offset | integer|yii\db\Expression | Сдвиг (смещение) с нуля, начиная с которого должны возвращаться записи. Может быть экземпляром yii\db\Expression. Если не задано или меньше 0, значит, возвращается с начала. | yii\db\QueryTrait |
| $orderBy | array | Порядок сортировки результатов запроса. Используется для построения ORDER BY в SQL-запросе. Ключи массива — сортируемые столбцы, значения — направления сортировки, которые могут быть SORT_ASC или SORT_DESC. Массив также может содержать объекты yii\db\Expression. В этом случае выражения будут преобразованы в строки без изменений. | yii\db\QueryTrait |
| $where | string|array | Условие запроса. Относится к условию WHERE в SQL-запросе. Например, ['age' => 31, 'team' => 1]. | yii\db\QueryTrait |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| addOrderBy() | Добавляет дополнительные столбцы ORDER BY к запросу. | yii\db\QueryTrait |
| andFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| andWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| emulateExecution() | Устанавливает, нужно ли имитировать выполнение запроса, предотвращая взаимодействие с хранилищем данных. | yii\db\QueryTrait |
| filterWhere() | Устанавливает часть WHERE запроса, но игнорирует пустые операнды. | yii\db\QueryTrait |
| indexBy() | Устанавливает свойство indexBy(). | yii\db\QueryTrait |
| limit() | Устанавливает часть LIMIT запроса. | yii\db\QueryTrait |
| offset() | Устанавливает часть OFFSET запроса. | yii\db\QueryTrait |
| orFilterWhere() | Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды. | yii\db\QueryTrait |
| orWhere() | Добавляет дополнительное условие WHERE к существующему. | yii\db\QueryTrait |
| orderBy() | Устанавливает часть ORDER BY запроса. | yii\db\QueryTrait |
| where() | Устанавливает часть WHERE запроса. | yii\db\QueryTrait |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| filterCondition() | Удаляет пустые операнды из заданного условия запроса. | yii\db\QueryTrait |
| isEmpty() | Возвращает значение, указывающее, является ли данное значение "пустым". | yii\db\QueryTrait |
| normalizeOrderBy() | Нормализует формат данных ORDER BY. | yii\db\QueryTrait |
Подробности о свойствах
$emulateExecution публичное свойство (доступно с версии 2.0.11)
Имитировать ли фактическое выполнение запроса, возвращая пустые или ложные результаты.
См. также emulateExecution().
public boolean $emulateExecution = false
$indexBy публичное свойство
Имя столбца, по которому должны индексироваться результаты запроса. Может также быть вызываемым объектом (например, анонимной функцией), возвращающим значение индекса на основе данных строки. Более подробная информация в indexBy(). Это свойство используется только в all().
public string|callable $indexBy = null
$limit публичное свойство
Максимальное количество записей, которое должно быть возвращено. Может быть экземпляром yii\db\Expression. Если не задано или меньше 0, то ограничения нет.
public integer|yii\db\Expression $limit = null
$offset публичное свойство
Смещение (с нуля), с которого должны возвращаться записи. Может быть экземпляром yii\db\Expression. Если не задано или меньше 0, значит, возвращается с начала.
public integer|yii\db\Expression $offset = null
$orderBy публичное свойство
Порядок сортировки результатов запроса. Используется для построения ORDER BY в SQL-запросе. Ключи массива — сортируемые столбцы, значения — направления сортировки, которые могут быть SORT_ASC или SORT_DESC. Массив также может содержать объекты yii\db\Expression. В этом случае выражения будут преобразованы в строки без изменений.
public array $orderBy = null
$where публичное свойство
Условие запроса. Относится к условию WHERE в SQL-запросе. Например, ['age' => 31, 'team' => 1].
См. также where() для допустимого синтаксиса задания этого значения.
public string|array $where = null
Подробности о методах
addOrderBy() public method
Добавляет дополнительные столбцы ORDER BY к запросу.
См. также orderBy().
| public $this addOrderBy ( $columns ) | ||
|---|---|---|
| $columns | string|array|yii\db\Expression |
Столбцы (и направления) для сортировки. Столбцы могут быть указаны либо в строке (например, "id ASC, name DESC"), либо в массиве (например, Метод автоматически приводит имена столбцов к каноническому виду, за исключением случаев, когда столбец содержит скобки (что означает, что столбец содержит выражение БД). Обратите внимание, что если ваша сортировка — это выражение, содержащее запятые, вы всегда должны использовать массив для представления информации о сортировке. В противном случае метод не сможет правильно определить столбцы сортировки. С версии 2.0.7 можно передавать объект yii\db\Expression для явного указания части ORDER BY на простом SQL. |
| return | $this |
Объект запроса. |
andFilterWhere() public method
Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды.
Новое условие и существующее будут объединены с помощью оператора 'И'.
Этот метод похож на andWhere(). Основное различие заключается в том, что этот метод удаляет пустые операнды запроса. В результате этот метод лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователями.
См. также:
| public $this andFilterWhere ( array $condition ) | ||
|---|---|---|
| $condition | array |
Новое условие WHERE. Обратитесь к where() для получения информации о том, как указать этот параметр. |
| return | $this |
Объект запроса. |
andWhere() public method
Добавляет дополнительное условие WHERE к существующему.
Новое условие и существующее будут объединены с помощью оператора 'И'.
См. также:
| public $this andWhere ( $condition ) | ||
|---|---|---|
| $condition | string|array |
Новое условие WHERE. Обратитесь к where() для получения информации о том, как указать этот параметр. |
| return | $this |
Объект запроса. |
emulateExecution() public method (доступно с версии 2.0.11)
Устанавливает, следует ли эмулировать выполнение запроса, предотвращая взаимодействие с хранилищем данных.
После включения этого режима методы, возвращающие результаты запроса, такие как \yii\db\one(), \yii\db\all(), \yii\db\exists() и так далее, будут возвращать пустые значения или false. Вы должны использовать этот метод в том случае, если логика вашей программы указывает, что запрос не должен возвращать никаких результатов, например, если вы установили ложное условие, например 0=1.
| public $this emulateExecution ( $value = true ) | ||
|---|---|---|
| $value | boolean |
Предотвратить выполнение запроса. |
| return | $this |
Объект запроса. |
filterCondition() protected method
Удаляет пустые операнды из заданного условия запроса.
| protected array filterCondition ( $condition ) | ||
|---|---|---|
| $condition | array |
Исходное условие. |
| return | array |
Условие с удаленными пустыми операндами. |
| throws | yii\base\NotSupportedException |
если оператор условия не поддерживается. |
filterWhere() public method
Устанавливает часть WHERE запроса, но игнорирует пустые операнды.
Этот метод похож на where(). Основное различие состоит в том, что этот метод удаляет пустые операнды запроса. В результате этот метод лучше всего подходит для построения условий запроса на основе значений фильтров, вводимых пользователями.
Следующий код демонстрирует разницу между этим методом и where():
// WHERE `age`=:age $query->filterWhere(['name' => null, 'age' => 20]); // WHERE `age`=:age $query->where(['age' => 20]); // WHERE `name` IS NULL AND `age`=:age $query->where(['name' => null, 'age' => 20]);
Обратите внимание, что в отличие от where(), вы не можете передавать параметры привязки в этот метод.
См. также:
| public $this filterWhere ( array $condition ) | ||
|---|---|---|
| $condition | array |
Условие, которое должно быть помещено в часть WHERE. Смотрите where() о том, как указать этот параметр. |
| return | $this |
Объект запроса. |
indexBy() public method
Устанавливает свойство indexBy().
| public $this indexBy ( $column ) | ||
|---|---|---|
| $column | string|callable |
Имя столбца, по которому результаты запроса должны быть индексированы. Это также может быть вызываемый объект (например, анонимная функция), который возвращает значение индекса на основе предоставленных данных строки. Подпись вызываемого объекта должна быть: function ($row)
{
// return the index value corresponding to $row
}
|
| return | $this |
Объект запроса. |
isEmpty() protected method
Возвращает значение, указывающее, является ли данное значение "пустым".
Значение считается "пустым", если выполняется одно из следующих условий:
- он
null, - пустая строка (
''), - строка, содержащая только пробельные символы,
- или пустой массив.
| protected boolean isEmpty ( $value ) | ||
|---|---|---|
| $value | mixed | |
| return | boolean |
Если значение пустое |
limit() public method
Устанавливает часть LIMIT запроса.
| public $this limit ( $limit ) | ||
|---|---|---|
| $limit | integer|yii\db\Expression|null |
Предел. Используйте null или отрицательное значение для отключения лимита. |
| return | $this |
Объект запроса. |
normalizeOrderBy() protected method
Нормализует формат данных ORDER BY
| protected array normalizeOrderBy ( $columns ) | ||
|---|---|---|
| $columns | array|string|yii\db\Expression |
Значение столбцов для нормализации. См. orderBy() и addOrderBy(). |
offset() public method
Устанавливает часть OFFSET запроса.
| public $this offset ( $offset ) | ||
|---|---|---|
| $offset | целое число|yii\db\Expression|null |
Смещение. Используйте null или отрицательное значение, чтобы отключить смещение. |
| return | $this |
Объект запроса |
orFilterWhere() public method
Добавляет дополнительное условие WHERE к существующему, но игнорирует пустые операнды.
Новое условие и существующее будут объединены с помощью оператора 'OR'.
Этот метод аналогичен методу orWhere(). Основное различие заключается в том, что этот метод удаляет пустые операнды запроса. В результате, этот метод лучше всего подходит для построения условий запроса на основе фильтров, вводимых пользователями.
См. также:
| public $this orFilterWhere ( массив $condition ) | ||
|---|---|---|
| $condition | массив |
Новое условие WHERE. См. where() для получения информации о способе указания этого параметра. |
| return | $this |
Объект запроса |
orWhere() public method
Добавляет дополнительное условие WHERE к существующему.
Новое условие и существующее будут объединены с помощью оператора 'OR'.
См. также:
| public $this orWhere ( $condition ) | ||
|---|---|---|
| $condition | строка|массив |
Новое условие WHERE. См. where() для получения информации о способе указания этого параметра. |
| return | $this |
Объект запроса |
orderBy() public method
Устанавливает часть ORDER BY запроса.
См. также addOrderBy().
| public $this orderBy ( $columns ) | ||
|---|---|---|
| $columns | строка|массив|yii\db\Expression |
Столбцы (и направления) для сортировки. Столбцы могут быть заданы как строкой (например, Метод автоматически приводит имена столбцов в соответствие с синтаксисом, если столбец не содержит скобок (что означает, что столбец содержит выражение БД). Обратите внимание, что если ваша сортировка — это выражение, содержащее запятые, вы всегда должны использовать массив для представления информации о сортировке. В противном случае метод не сможет правильно определить столбцы сортировки. С версии 2.0.7, объект yii\db\Expression может быть передан для явного указания части ORDER BY в чистом SQL. |
| return | $this |
Объект запроса |
where() public method
Устанавливает часть WHERE запроса.
См. yii\db\QueryInterface::where() для подробного описания.
См. также:
| public $this where ( $condition ) | ||
|---|---|---|
| $condition | строка|массив |
Условие, которое должно быть помещено в часть WHERE. |
| return | $this |
Объект запроса |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-querytrait.html