Трейт QueryTrait
Содержит характеристики для объекта, прикрепленного к репозиторию, и может извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэшера запросов, если для этого запроса включен кэш.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадного загрузки.boolean -
$_formattersprotectedcallable[]Список классов или обратных вызовов форматирования, которые будут выполнять постобработку результатов при их извлечении
-
$_mapReduceprotectedarrayСписок процедур map-reduce, которые должны быть применены к результатам запроса
-
$_optionsprotectedarrayСодержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны каким-либо методом в этом классе.
- Экземпляр объекта таблицы, к которому привязан этот запрос
$_repositoryprotected - Объект ResultSet.
$_resultsprotected
Краткое описание методов
- __call() publicПозволяет вызывать методы из набора результатов как если бы они были из этого класса
- _decorateResults() protectedДекорирует итератор результатов процедурами MapReduce и средствами форматирования
- _decoratorClass() protectedВозвращает имя класса, используемого для декорирования результатов
- Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты
- aliasField() public
Возвращает массив ключ => значение, представляющий одно алиасовое поле, которое можно передать непосредственно методу select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
- aliasFields() public
Выполняет
aliasField()для каждого поля в предоставленном списке и возвращает результат в одном массиве. - all() publicИзвлечь результаты для этого запроса.
-
Заполняет или добавляет части к текущим условиям запроса с использованием массива. Это удобно для передачи всех условий запроса сразу.
- cache() publicВключить кэширование результатов для этого запроса.
- eagerLoaded() public
Устанавливает экземпляр запроса как запрос с жадной загрузкой. Если аргумент не передан, возвращается текущее значение конфигурируемого запроса
_eagerLoaded. - first() public
Возвращает первый результат выполнения этого запроса. Если запрос ещё не выполнялся, он установит ограничение на 1 для повышения производительности.
- firstOrFail() publicПолучить первый результат из выполняемого запроса или вызвать исключение.
- formatResults() public
Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечения результатов из базы данных.
- getIterator() public
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерироваться по запросу без необходимости вызывать execute() вручную, что делает его похожим на набор результатов, а не на сам запрос.
- getOptions() public
Возвращает массив с пользовательскими параметрами, которые были применены к этому запросу и которые ещё не были обработаны другим методом в этом классе.
- isEagerLoaded() publicВозвращает текущее значение конфигурируемого запроса
_eagerLoaded - mapReduce() public
Зарегистрировать новую процедуру MapReduce, которая будет выполнена над результатами базы данных. Оба вызываемых объекта (mapper и caller) должны быть вызываемыми.
- repository() public
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая будет отображаться в from-запросе.
- setResult() publicУстановить набор результатов для запроса.
- toArray() publicВозвращает массивное представление результатов после выполнения запроса.
Подробное описание методов
__call()source public
__call( string $method , array $arguments )
Позволяет вызывать методы из набора результатов как если бы они были из этого класса
Параметры
- строка
$method - метод, который нужно вызвать
- массив
$arguments - список аргументов для вызова метода
Возвращает
mixedВыбрасывает
BadMethodCallExceptionесли такого метода не существует в наборе результатов
_decorateResults()source protected
_decorateResults( Traversable $result )
Декорирует итератор результатов процедурами MapReduce и средствами форматирования
Параметры
- Итерируемый
$result - Оригинальные результаты
Возвращает
Cake\Datasource\ResultSetInterface_decoratorClass()source protected
_decoratorClass( )
Возвращает имя класса, используемого для декорирования результатов
Возвращает
строка_execute()source abstract protected
_execute( )
Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты
Возвращает
Итерируемый объектaliasField()source public
aliasField( string $field , string|null $alias null )
Возвращает массив ключ => значение, представляющий одно алиасовое поле, которое можно передать непосредственно методу select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
Если поле уже имеет псевдоним, то оно не будет изменено. Если $alias не передан, будет использована таблица по умолчанию для этого запроса.
Параметры
- строка
$field - Поле для присвоения псевдонима
- строка|null
$aliasнеобязательно null - Псевдоним, используемый для префикса поля
Возвращает
массивaliasFields()source public
aliasFields( array $fields , string|null $defaultAlias null )
Выполняет aliasField() для каждого поля в предоставленном списке и возвращает результат в одном массиве.
Параметры
- массив
$fields - Поля для присвоения псевдонимов
- строка|null
$defaultAliasнеобязательно null - Псевдоним по умолчанию
Возвращает
массивall()source public
all( )
Получить результаты для этого запроса.
Вернёт либо набор результатов, заданный с помощью setResult(), либо выполнит этот запрос и вернёт объект ResultSetDecorator, готовый для потоковой передачи результатов.
ResultSetDecorator — это итерируемый объект, реализующий методы, доступные в Cake\Collection\Collection.
Возвращает
Cake\Datasource\ResultSetInterfaceapplyOptions()source abstract public
applyOptions( array $options )
Заполняет или добавляет части текущих условий запроса, используя массив. Это удобно для передачи всех условий запроса сразу.
Параметры
- массив
$options - опции, которые необходимо применить
Возвращает
$this
cache()source public
cache( false|string|Closure $key , string|Cake\Cache\CacheEngine $config 'default' )
Включить кэширование результатов для этого запроса.
Если кэширование включено для запроса, при его выполнении будет выполнено следующее:
- Проверить кэш по ключу $key. Если результаты есть, SQL не будет выполняться. Вместо этого будут возвращены кэшированные результаты.
- Если кэшированные данные устарели/отсутствуют, набор результатов будет кэширован при выполнении запроса.
Использование
// Simple string key + config
$query->cache('my_key', 'db_results');
// Function to generate key.
$query->cache(function ($q) {
$key = serialize($q->clause('select'));
$key .= serialize($q->clause('where'));
return md5($key);
});
// Using a pre-built cache engine.
$query->cache('my_key', $engine);
// Disable caching
$query->cache(false); Параметры
- false|string|Closure
$key Ключ кэша или функция для генерации ключа кэша. При использовании функции, экземпляр этого запроса будет передан в качестве аргумента.
- строка|
Cake\Cache\CacheEngine$configнеобязательно 'default' Имя конфигурации кэша для использования или экземпляр конфигурации кэша.
Возвращает
$this
eagerLoaded()source public
eagerLoaded( boolean|null $value null )
Устанавливает экземпляр запроса в качестве запроса с отложенной загрузкой. Если аргумент не передан, возвращается текущее значение конфигурации запроса _eagerLoaded.
Устарело
3.5.0 Используйте isEagerLoaded() для получения значения вместо этого.Параметры
- boolean|null
$valueнеобязательно null - Включать или выключать отложенную загрузку.
Возвращает
$this|\Cake\ORM\Query
first()source public
first( )
Возвращает первый результат выполнения этого запроса. Если запрос ещё не выполнялся, он установит ограничение до 1 для повышения производительности.
Пример:
$singleUser = $query->select(['id', 'username'])->first();
Возвращает
Cake\Datasource\EntityInterface|массив|nullПервый результат из набора результатов.
firstOrFail()source public
firstOrFail( )
Получает первый результат из выполнения запроса или вызывает исключение.
Возвращает
Cake\Datasource\EntityInterface|массивПервый результат из набора результатов.
Вызывает исключение
Cake\Datasource\Exception\RecordNotFoundExceptionЕсли первого записы нет.
formatResults()source public
formatResults( callable $formatter null , boolean|integer $mode 0 )
Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечения результатов из базы данных.
Функции обратного вызова форматирования получат первый параметр, ResultSetDecorator, который можно перебрать и изменить по своему усмотрению.
Функции обратного вызова должны возвращать объект-итератор, который будет использоваться в качестве значения возврата для результата этого запроса. Функции форматирования применяются после выполнения всех MapReduce процедур для этого запроса.
Если первый аргумент равен null, он вернёт список ранее зарегистрированных функций map-reduce.
Если второй аргумент равен true, он удалит предыдущие функции форматирования и заменит их переданным первым аргументом.
Пример:
// Return all results from the table indexed by id
$query->select(['id', 'name'])->formatResults(function ($results) {
return $results->indexBy('id');
});
// Add a new column to the ResultSet
$query->select(['name', 'birth_date'])->formatResults(function ($results) {
return $results->map(function ($row) {
$row['age'] = $row['birth_date']->diff(new DateTime)->y;
return $row;
});
}); Параметры
- обратный вызов
$formatterнеобязательно null - Функция обратного вызова форматирования.
- boolean|целое число
$modeнеобязательно 0 - Заменить, добавить или вставить функцию форматирования.
Возвращает
$this|массив
getIterator()source public
getIterator( )
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерироваться по запросу без необходимости вызова execute() вручную, делая его похожим на набор результатов, а не на сам запрос.
Возвращает
ИтераторgetOptions()source public
getOptions( )
Возвращает массив с пользовательскими опциями, которые были применены к этому запросу и которые ещё не были обработаны другим методом в этом классе.
Пример:
$query->applyOptions(['doABarrelRoll' => true, 'fields' => ['id', 'name']); $query->getOptions(); // Returns ['doABarrelRoll' => true]
Возвращает
массивСм. также
\Cake\ORM\Query::applyOptions(), чтобы узнать о параметрах, которые будут обработаны этим классом и не будут возвращены этой функцией
isEagerLoaded()source public
isEagerLoaded( )
Возвращает текущее значение конфигурации запроса _eagerLoaded.
Возвращает
booleanmapReduce()source public
mapReduce( callable $mapper null , callable $reducer null , boolean $overwrite false )
Регистрирует новую процедуру MapReduce, которая должна выполняться поверх результатов базы данных. Обе вызываемые функции, mapper и caller, должны быть вызываемыми объектами.
Процедуры MapReduce будут выполняться только при выполнении запроса и при попытке получить первый результат.
Если первый аргумент равен null, он вернёт список ранее зарегистрированных процедур map-reduce.
Если третий аргумент равен true, он удалит предыдущие процедуры map-reduce и заменит их переданными аргументами.
Параметры
- обратный вызов
$mapperнеобязательно null - Функция обратного вызова mapper.
- обратный вызов
$reducerнеобязательно null - Функция обратного вызова reducing.
- boolean
$overwriteнеобязательно false - Установить в значение true, чтобы перезаписать существующие функции map + reduce.
Возвращает
$this|массив
См. также
\Cake\Collection\Iterator\MapReduce для получения подробностей о том, как передавать данные в map-reduce.repository()source public
repository( Cake\Datasource\RepositoryInterface $table null )
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая будет появляться в инструкции from.
При вызове с аргументом Table объект таблицы по умолчанию будет установлен, и этот объект запроса будет возвращён для цепочки вызовов.
Параметры
-
Cake\Datasource\RepositoryInterface$tableнеобязательно null - Объект таблицы по умолчанию для использования
Возвращает
Cake\Datasource\RepositoryInterface|Cake\Datasource\QueryTrait$this
setResult()source public
setResult( Cake\Datasource\ResultSetInterface $results )
Установить набор результатов для запроса.
Установка набора результатов запроса сделает execute() бесполезной операцией. Вместо выполнения SQL-запроса и извлечения результатов, будет возвращён набор результатов, переданный этому методу.
Этот метод наиболее полезен в сочетании с результатами, хранящимися в постоянном кэше.
Параметры
-
Cake\Datasource\ResultSetInterface$results - Результаты, которые должен возвращать этот запрос.
Возвращает
$this
toArray()source public
toArray( )
Возвращает массивное представление результатов после выполнения запроса.
Возвращает
массивПодробное описание свойств
$_cachesource
protected Cake\Datasource\QueryCacher
Экземпляр кэширования запроса, если кэширование включено для этого запроса.
$_eagerLoadedsource
protected boolean
Является ли запрос автономным или результатом операции eager load.
false
$_formatterssource
protected callable[]
Список классов форматирования или обратных вызовов, которые будут пост-обрабатывать результаты при извлечении.
[]
$_mapReducesource
protected array
Список map-reduce процедур, которые должны быть применены к результатам запроса.
[]
$_optionssource
protected array
Содержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны никаким методом в этом классе.
[]
$_repositorysource
protected Cake\Datasource\RepositoryInterface
Экземпляр объекта таблицы, к которой привязан данный запрос.
$_resultssource
protected Cake\Datasource\ResultSetInterface|null
Результат запроса.
При установке выполнение запроса будет пропущено.
См. также
\Cake\Datasource\QueryTrait::setResult()
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Datasource.QueryTrait.html