Трейт QueryTrait
Содержит характеристики объекта, прикреплённого к хранилищу и способного извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэширования запросов, если для этого запроса включено кэширование.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадной загрузки.boolean -
$_formattersprotectedarrayСписок классов или обратных вызовов форматирования, которые будут пост-обрабатывать результаты при извлечении.
-
$_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
Возвращает массив с пользовательскими параметрами, которые были применены к этому запросу и которые ещё не были обработаны другим методом в этом классе.
- mapReduce() public
Регистрирует новую операцию map-reduce, которая должна быть выполнена поверх результатов базы данных. Как вызываемый объект, так и вызываемый объект-маппер должны быть вызываемыми объектами.
- 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 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 Ключ кэша или функция для генерации ключа кэша. При использовании функции этот экземпляр запроса будет передан в качестве аргумента.
- string|
Cake\Cache\CacheEngine$configнеобязательно 'default' Имя конфигурации кэша для использования или экземпляр конфигурации кэша.
Возвращает
$this Этот экземпляр
eagerLoaded()source public
eagerLoaded( boolean|null $value null )
Устанавливает экземпляр запроса в качестве запроса с отложенной загрузкой. Если аргумент не передан, возвращается текущее значение настроенного запроса _eagerLoaded.
Параметры
- boolean|null
$valueнеобязательно null - Выполнять ли отложенную загрузку.
Возвращает
$this|\Cake\ORM\Query
first()source public
first( )
Возвращает первый результат выполнения этого запроса. Если запрос не был выполнен ранее, он установит условие ограничения до 1 для повышения производительности.
Пример:
$singleUser = $query->select(['id', 'username'])->first();
Возвращает
смешанныйПервый результат из ResultSet
firstOrFail()source public
firstOrFail( )
Получить первый результат из выполняемого запроса или выбросить исключение.
Возвращает
смешанныйПервый результат из ResultSet.
Выбрасывает
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|integer
$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() для ознакомления с параметрами, которые будут обработаны этим классом и не будут возвращены этой функцией
mapReduce()source public
mapReduce( callable $mapper null , callable $reducer null , boolean $overwrite false )
Регистрирует новую процедуру MapReduce, которая будет выполняться над результатами базы данных. Как функция-маппер, так и функция-редуктор должны быть вызываемыми объектами.
Процедура MapReduce будет выполняться только при выполнении запроса и попытке извлечь первый результат.
Если первый аргумент равен null, он вернет список ранее зарегистрированных процедур map-reduce.
Если третий аргумент равен true, он удалит предыдущие функции map-reduce и заменит их переданными аргументами.
Параметры
- вызываемый объект
$mapperнеобязательно null - Вызываемый объект-маппер.
- вызываемый объект
$reducerнеобязательно null - Функция редукции.
- boolean
$overwriteнеобязательно false - Установите в значение true, чтобы перезаписать существующие функции map + reduce.
Возвращает
$this|массив
См.
\Cake\Collection\Iterator\MapReduce для получения информации о том, как использовать данные emit для 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
Является ли запрос автономным или результатом операции отложенной загрузки.
false
$_formatterssource
protected массив
Список классов форматирования или обратных вызовов, которые будут обрабатывать результаты после извлечения
[]
$_mapReducesource
protected массив
Список процедур map-reduce, которые должны быть применены к результату запроса
[]
$_optionssource
protected массив
Содержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны ни одним методом в этом классе.
[]
$_repositorysource
protected Cake\Datasource\RepositoryInterface
Экземпляр объекта таблицы, к которому привязано это запроса.
$_resultssource
protected Cake\Datasource\ResultSetInterface
Объект ResultSet.
При установлении выполнение запроса будет пропущено.
См. также
\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.3/class-Cake.Datasource.QueryTrait.html