Трейт QueryTrait
Содержит характеристики объекта, прикреплённого к репозиторию, и позволяющего извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Экземпляр кэша запросов, если для этого запроса включено кэширование.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадного загрузки.boolean -
$_formattersprotectedcallable[]Список классов или обратных вызовов форматирования, которые будут применять пост-обработку результатов при их извлечении
-
$_mapReduceprotectedarrayСписок процедур map-reduce, которые должны быть применены к результатам запроса
-
$_optionsprotectedarrayСодержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны никаким методом в этом классе.
- Экземпляр объекта таблицы, к которой привязан этот запрос
$_repositoryprotected - Набор результатов.
$_resultsprotected
Краткое описание методов
- __call() publicПозволяет вызывать методы из набора результатов, как будто они принадлежат этому классу
- _decorateResults() protectedДекорирует итератор результатов процедурами MapReduce и форматированиями
- _decoratorClass() protectedВозвращает имя класса, используемого для декорирования результатов
- Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты
- aliasField() public
Возвращает массив key => value, представляющий одно алиасовое поле, которое можно передать непосредственно методу 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 )
Позволяет вызывать методы из набора результатов, как будто они принадлежат этому классу
Параметры
- 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 )
Возвращает массив key => value, представляющий одно алиасовое поле, которое можно передать непосредственно методу 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|строка|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Первый результат из ResultSet.
firstOrFail()source public
firstOrFail( )
Получить первый результат из выполняемого запроса или выбросить исключение.
Возвращает
Cake\Datasource\EntityInterface|массивПервый результат из ResultSet.
Выбрасывает
Cake\Datasource\Exception\RecordNotFoundExceptionЕсли первого записей нет.
formatResults()source public
formatResults( callable $formatter null , boolean|integer $mode 0 )
Регистрирует новую функцию-обработчик форматирования, которая должна выполняться при попытке извлечения результатов из базы данных.
Функции-обработчики форматирования получат в качестве первого параметра итерируемый объект, который можно проходить и изменять по своему усмотрению.
Функции-обработчики должны вернуть объект-итератор, который будет использоваться в качестве возвращаемого значения для результата этого запроса. Функции форматирования применяются после всех операций 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 - Вызываемый объект map.
- вызываемый объект
$reducerнеобязательно null - Функция reduce.
- 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\ORM\Table|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\ORM\Table|Cake\Datasource\RepositoryInterface
Экземпляр объекта таблицы, к которой привязан этот запрос.
$_resultssource
protected Cake\Datasource\ResultSetInterface|null
Результат набора данных.
При установке выполнение запроса будет пропущено.
См. также
\Cake\Datasource\QueryTrait::setResult()
© 2005–2018 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.5/class-Cake.Datasource.QueryTrait.html