Трейт QueryTrait
Содержит характеристики для объекта, прикрепленного к репозиторию, и может извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэшера запросов, если для этого запроса включён кэширование.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадного загрузки.boolean -
$_formattersprotectedarrayСписок классов или обратных вызовов форматирования, которые будут пост-обрабатывать результаты при извлечении.
-
$_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() public
Устанавливает экземпляр запроса как запрос с жадной загрузкой. Если аргумент не передан, возвращается текущее значение конфигурированного запроса
_eagerLoaded. - first() public
Возвращает первый результат выполнения этого запроса. Если запрос не выполнялся ранее, он установит условие ограничения на 1 для повышения производительности.
- firstOrFail() publicПолучает первый результат выполняемого запроса или вызывает исключение.
- formatResults() public
Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечения результатов из базы данных.
- getIterator() public
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать запрос без ручного вызова execute(), делая его похожим на набор результатов, а не на сам запрос.
- getOptions() public
Возвращает массив с пользовательскими параметрами, которые были применены к этому запросу и которые ещё не были обработаны другим методом в этом классе.
- mapReduce() public
Регистрирует новую процедуру MapReduce, которая должна выполняться над результатами базы данных. Обе вызываемые функции, mapper и caller, должны быть вызываемыми объектами.
- repository() public
Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая будет отображаться в разделе from.
- setResult() publicУстанавливает набор результатов для запроса.
- toArray() publicВозвращает массивное представление результатов после выполнения запроса.
Подробное описание методов
__call()source public
__call( string $method , array $arguments )
Разрешает вызывать методы из набора результатов, как если бы они были из этого класса
Параметры
- string
$method - метод для вызова
- array
$arguments - список аргументов для вызова метода
Возвращает
mixedИсключения
BadMethodCallExceptionесли такого метода не существует в наборе результатов
_decorateResults()source protected
_decorateResults( Traversable $result )
Декорирует итератор результатов операциями MapReduce и форматированиями
Параметры
- Traversable
$result - Оригинальные результаты
Возвращает
Cake\Datasource\ResultSetInterface_decoratorClass()source protected
_decoratorClass( )
Возвращает имя класса, используемого для декорирования результатов
Возвращает
string_execute()source abstract protected
_execute( )
Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты
Возвращает
TraversablealiasField()source public
aliasField( string $field , string|null $alias null )
Возвращает массив ключ => значение, представляющий единственное алиасовое поле, которое можно передать непосредственно методу select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
Если поле уже имеет псевдоним, оно не будет изменено. Если $alias не передан, будет использована таблица по умолчанию для этого запроса.
Параметры
- string
$field - Поле для присвоения псевдонима
- string|null
$aliasoptional null - псевдоним для префикса поля
Возвращает
arrayaliasFields()source public
aliasFields( array $fields , string|null $defaultAlias null )
Выполняет aliasField() для каждого поля в предоставленном списке и возвращает результат в одном массиве.
Параметры
- array
$fields - Поля для присвоения псевдонимов
- string|null
$defaultAliasoptional null - Псевдоним по умолчанию
Возвращает
arrayall()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.
Параметры
- boolean|null
$valueнеобязательно null - Загружать ли с отложенной загрузкой.
Возвращает
$this|\Cake\ORM\Query
first()source public
first( )
Возвращает первый результат выполнения этого запроса. Если запрос еще не выполнялся, он установит ограничение до 1 по причинам производительности.
Пример:
$singleUser = $query->select(['id', 'username'])->first();
Возвращает
смешанноепервый результат из ResultSet
firstOrFail()source public
firstOrFail( )
Получить первый результат из выполняемого запроса или вызвать исключение.
Возвращает
смешанноеПервый результат из набора результатов.
Выбрасывает
Cake\Datasource\Exception\RecordNotFoundExceptionКогда нет первого запии.
formatResults()source public
formatResults( callable $formatter null , boolean|integer $mode 0 )
Регистрирует новую функцию-обработчик форматирования, которая должна быть выполнена при попытке извлечения результатов из базы данных.
Функции-обработчики форматирования получат в качестве первого параметра ResultSetDecorator, который можно просматривать и изменять по своему усмотрению.
Функции-обработчики обязаны вернуть объект-итератор, который будет использоваться в качестве значения возврата для результата этого запроса. Функции-обработчики форматирования применяются после всех MapReduce процедур для этого запроса.
Если первый аргумент установлен в null, он вернет список ранее зарегистрированных процедур MapReduce.
Если второй аргумент установлен в 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, он вернёт список ранее зарегистрированных процедур MapReduce.
Если третий аргумент установлен в true, он удалит предыдущие функции map-reduce и заменит их переданными аргументами.
Параметры
- вызываемый объект
$mapperнеобязательно null - Вызываемый объект-маппер.
- вызываемый объект
$reducerнеобязательно null - Функция-редуктор.
- boolean
$overwriteнеобязательно false - Установить в true для перезаписи существующих функций map + reduce.
Возвращает
$this|массив
См.
\Cake\Collection\Iterator\MapReduce для получения подробностей о том, как использовать данные emit для map-редуктора.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–2016 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.
http://api.cakephp.org/3.2/class-Cake.Datasource.QueryTrait.html