Трейт QueryTrait
Содержит характеристики объекта, прикрепленного к хранилищу, и может извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэша запросов, если для этого запроса включён кэширование.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции eager load.boolean -
$_formattersprotectedcallable[]Список классов или обратных вызовов форматирования, которые будут выполнять пост-обработку результатов при извлечении.
-
$_mapReduceprotectedarrayСписок процедур map-reduce, которые должны быть применены к результатам запроса.
-
$_optionsprotectedarrayСодержит все настраиваемые параметры, переданные с помощью applyOptions, которые не могли быть обработаны каким-либо методом в этом классе.
- Экземпляр объекта таблицы, к которой связан этот запрос.
$_repositoryprotected - Объект ResultSet.
$_resultsprotected
Краткое описание методов
- __call() publicПозволяет вызывать методы из набора результатов так, как будто они принадлежат этому классу.
- _decorateResults() protectedДекорирует итератор результатов процедурами MapReduce и средствами форматирования.
- _decoratorClass() protectedВозвращает имя класса, используемого для декорирования результатов.
- Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты.
- aliasField() public
Возвращает массив key => value, представляющий одно алиасированное поле, которое можно передать непосредственно методу select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
- aliasFields() public
Выполняет
aliasField()для каждого поля в предоставленном списке и возвращает результат в одном массиве. - all() publicИзвлекает результаты для этого запроса.
-
Заполняет или добавляет части к текущим условиям запроса, используя массив. Это удобно для передачи всех условий запроса сразу.
- cache() publicВключает кэширование результатов для этого запроса.
-
Устанавливает экземпляр запроса как запрос eager load. Если аргумент не передан, возвращается текущее значение конфигурации запроса
_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
Регистрирует новую процедуру MapReduce, которая будет выполняться над результатами базы данных. И вызываемая функция, и вызываемый объект должны быть вызываемыми.
- 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 и средствами форматирования.
Параметры
- Traversable
$result - Исходные результаты
Возвращает
Cake\Datasource\ResultSetInterface_decoratorClass()source protected
_decoratorClass( )
Возвращает имя класса, используемого для декорирования результатов.
Возвращает
строка_execute()source abstract protected
_execute( )
Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты.
Возвращает
TraversablealiasField()source public
aliasField( string $field , string|null $alias = null )
Возвращает массив key => value, представляющий одно алиасированное поле, которое можно передать непосредственно методу select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
Если поле уже алиасировано, оно не будет изменено. Если $alias не передан, будет использована таблица по умолчанию для этого запроса.
Параметры
- строка
$field - Поле для алиасирования
- строка|null
$aliasoptional 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;
});
}); Параметры
- callable
$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, которая будет выполняться поверх результатов базы данных. Как функция маппера, так и вызывающая функция должны быть вызываемыми объектами.
Маршрутизация MapReduce будет выполняться только при выполнении запроса и попытке получения первого результата.
Если первый аргумент равен null, он вернет список ранее зарегистрированных процедур map reduce. Это устарело начиная с 3.6.0 - используйте getMapReducers() вместо этого.
Если третий аргумент равен true, он удалит предыдущие функции map и reduce и заменит их переданными аргументами.
Параметры
- callable
$mapperнеобязательно null - Функция маппера.
- callable
$reducerнеобязательно null - Функция редьюсера.
- 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( )
Возвращает массив представления результатов после выполнения запроса.
Возвращает
arrayПодробное описание свойств
$_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
Набор результатов.
При установке выполнение запроса будет пропущено.
См. также
\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.6/class-Cake.Datasource.QueryTrait.html