Трейт QueryTrait
Содержит характеристики объекта, прикреплённого к репозиторию, и может извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэша запросов, если для этого запроса включён кэширование.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадного загрузки.boolean -
$_formattersprotectedcallable[]Список классов или обратных вызовов форматирования, которые будут выполнять постобработку результатов при извлечении.
-
$_mapReduceprotectedarrayСписок процедур map-reduce, которые должны быть применены к результату запроса.
-
$_optionsprotectedarrayСодержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны каким-либо методом в этом классе.
- Экземпляр объекта таблицы, к которому привязан этот запрос.
$_repositoryprotected - Результиновый набор.
$_resultsprotected
Краткое описание методов
- __call() publicРазрешает вызов методов из набора результатов как если бы они были из этого класса.
- _decorateResults() protectedДекорирует итератор результатов процедурами MapReduce и форматировщиками.
- _decoratorClass() protectedВозвращает имя класса, используемого для декорирования результатов.
- Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты.
- aliasField() public
Возвращает массив ключ => значение, представляющий один алиасированный столбец, который можно передать непосредственно методу select(). Ключ будет содержать алиас, а значение — фактическое имя поля.
- aliasFields() public
Выполняет
aliasField()для каждого поля в предоставленном списке и возвращает результат в одном массиве. - all() publicИзвлечь результаты для этого запроса.
-
Заполняет или добавляет части текущих условий запроса, используя массив. Это удобно для передачи всех условий запроса сразу.
- cache() publicВключить кэширование результатов для этого запроса.
-
Устанавливает экземпляр запроса как запрос с жадной загрузкой. Если аргумент не передан, возвращается текущее значение конфигурации запроса
_eagerLoaded. - first() public
Возвращает первый результат выполнения этого запроса. Если запрос ещё не выполнялся, он установит ограничение на 1 для повышения производительности.
- firstOrFail() publicПолучить первый результат из выполняемого запроса или вызвать исключение.
- formatResults() public
Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечь результаты из базы данных.
- getIterator() public
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать по запросу без необходимости вызова execute() вручную, тем самым, делая его похожим на набор результатов, а не на сам запрос.
- getMapReducers() publicВозвращает список ранее зарегистрированных процедур map-reduce.
- getOptions() public
Возвращает массив с пользовательскими параметрами, которые были применены к этому запросу и которые ещё не обрабатывались другим методом в этом классе.
- getRepository() public
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая появится в операторе from.
- getResultFormatters() publicВозвращает список ранее зарегистрированных процедур форматирования.
- isEagerLoaded() publicВозвращает текущее значение конфигурации запроса
_eagerLoaded. - mapReduce() public
Регистрирует новую процедуру map-reduce, которая должна выполняться поверх результатов базы данных. И вызываемый объект mapper, и вызываемый объект caller должны быть вызываемыми объектами.
- repository() public
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая появится в операторе from.
- setResult() publicУстановить набор результатов для запроса.
- toArray() publicВозвращает массивное представление результатов после выполнения запроса.
Подробное описание методов
__call()source public
__call( string $method , array $arguments )
Разрешает вызов методов из набора результатов как если бы они были из этого класса
Параметры
- строка
$method - вызываемый метод
- массив
$arguments - список аргументов для вызываемого метода
Возвращает
смешанноеИсключения
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 абстрактный 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|строка|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|bool
first()source public
first( )
Возвращает первый результат выполнения этого запроса. Если запрос еще не выполнен, он установит ограничение до 1 для повышения производительности.
Пример:
$singleUser = $query->select(['id', 'username'])->first();
Возвращает
Cake\Datasource\EntityInterface|массив|nullПервый результат из ResultSet.
firstOrFail()source public
firstOrFail( )
Получить первый результат выполнения запроса или выбросить исключение.
Возвращает
Cake\Datasource\EntityInterface|массивПервый результат из ResultSet.
Исключения
Cake\Datasource\Exception\RecordNotFoundExceptionЕсли первый элемент отсутствует.
formatResults()source public
formatResults( callable $formatter = null , boolean|integer $mode = 0 )
Регистрирует новую функцию обратного вызова для форматирования, которая должна быть выполнена при попытке получения результатов из базы данных.
Функции форматирования получат в качестве первого аргумента объект, реализующий \Cake\Collection\CollectionInterface, который можно итерировать и изменять по своему усмотрению.
Функции обратного вызова должны возвращать итерируемый объект, который будет использоваться в качестве возвращаемого значения для результата этого запроса. Функции форматирования применяются после всех MapReduce процедур для данного запроса.
Если первый аргумент равен null, возвращается список ранее зарегистрированных функций форматирования. Это устарело начиная с 3.6.0 - используйте getResultFormatters() вместо этого.
Если второй аргумент равен 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(), что позволяет ему выглядеть как набор результатов, а не как сам запрос.
Возвращает
ИтераторgetMapReducers()source public
getMapReducers( )
Возвращает список ранее зарегистрированных процедур map-reduce.
Возвращает
массивgetOptions()source public
getOptions( )
Возвращает массив со пользовательскими параметрами, примененными к этому запросу и которые еще не обработаны другим методом в этом классе.
Пример:
$query->applyOptions(['doABarrelRoll' => true, 'fields' => ['id', 'name']); $query->getOptions(); // Returns ['doABarrelRoll' => true]
Возвращает
массивСм.
\Cake\Datasource\QueryInterface::applyOptions() для получения информации о параметрах, которые будут обработаны этим классом и не будут возвращены этой функцией
getRepository()source public
getRepository( )
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая будет отображаться в предложении from.
Возвращает
Cake\Datasource\RepositoryInterfacegetResultFormatters()source public
getResultFormatters( )
Возвращает список ранее зарегистрированных процедур форматирования.
Возвращает
массив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. Это устарело начиная с 3.6.0 - используйте getMapReducers() вместо этого.
Если третий аргумент равен true, он удалит предыдущие функции map-reduce и заменит их переданными аргументами.
Параметры
- вызываемая функция
$mapperнеобязательно null - Вызываемая функция mapper.
- вызываемая функция
$reducerнеобязательно null - Функция reduce.
- 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-запроса и извлечения результатов, будет возвращён ResultSet, предоставленный этому методу.
Этот метод наиболее полезен при совместном использовании с результатами, хранящимися в кэше.
Параметры
-
Cake\Datasource\ResultSetInterface$results - Результаты, которые должен возвращать этот запрос.
Возвращает
$this
toArray()source public
toArray( )
Возвращает массивное представление результатов после выполнения запроса.
Возвращает
массивПодробное описание свойств
$_cachesource
protected Cake\Datasource\QueryCacher|null
Экземпляр кэшера запросов, если кэширование включено для этого запроса.
$_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
ResultSet.
При установке выполнение запроса будет пропущено.
См. также
\Cake\Datasource\QueryTrait::setResult()
© 2005–present 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.7/class-Cake.Datasource.QueryTrait.html