Трейт QueryTrait
Содержит характеристики объекта, прикрепленного к хранилищу, и может извлекать результаты на основе любых критериев.
Прямые пользователи
Краткое описание свойств
- Инстанс кэширования запроса, если для данного запроса включён кэш.
$_cacheprotected -
$_eagerLoadedprotectedЯвляется ли запрос автономным или результатом операции жадной загрузки.boolean -
$_formattersprotectedcallable[]Список классов-форматеров или обратных вызовов, которые будут выполнять пост-обработку результатов при извлечении.
-
$_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. - first() public
Возвращает первый результат выполнения этого запроса. Если запрос ещё не выполнен, он установит ограничение до 1 для повышения производительности.
- firstOrFail() publicПолучить первый результат из выполняемого запроса или вызвать исключение.
- formatResults() public
Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечения результатов из базы данных.
- getIterator() public
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет перебирать запрос без ручного вызова execute(), что позволяет ему вести себя как набор результатов, а не как сам запрос.
- getMapReducers() publicВозвращает список ранее зарегистрированных процедур MapReduce.
- 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 - список аргументов для вызываемого метода
Возвращает
смешанный типИсключения
BadMethodCallExceptionесли такого метода не существует в наборе результатов
_decorateResults()source protected
_decorateResults( Traversable $result )
Декорирует итератор результатов с помощью процедур MapReduce и форматировщиков
Параметры
- Traversable
$result - Исходные результаты
Возвращает
Cake\Datasource\ResultSetInterface_decoratorClass()source protected
_decoratorClass( )
Возвращает имя класса, используемого для декорации результатов
Возвращает
строка_execute()source абстрактный protected
_execute( )
Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты
Возвращает
TraversablealiasField()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|string|Closure
$key Ключ кэша или функция для генерации ключа кэша. При использовании функции, экземпляр этого запроса будет передан в качестве аргумента.
- string|
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|array|nullПервый результат из ResultSet.
firstOrFail()source public
firstOrFail( )
Получить первый результат из выполняемого запроса или выбросить исключение.
Возвращаемое значение
Cake\Datasource\EntityInterface|arrayПервый результат из 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|integer
$modeнеобязательно 0 - Заменять, добавлять или вставлять форматировщик.
Возвращаемое значение
$this|array
getIterator()source public
getIterator( )
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать запрос без необходимости вызова execute() вручную, тем самым делая его похожим на результирующий набор вместо самого запроса.
Возвращаемое значение
IteratorgetMapReducers()source public
getMapReducers( )
Возвращает список ранее зарегистрированных процедур map reduce.
Возвращаемое значение
arraygetOptions()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
Возвращает
булево значениеmapReduce()source public
mapReduce( callable $mapper = null , callable $reducer = null , boolean $overwrite = false )
Регистрирует новую функцию MapReduce, которая будет выполнена над результатами базы данных. Обе вызываемые функции - mapper и caller - должны быть вызываемыми объектами.
Маршрутизация MapReduce будет выполнена только при выполнении запроса и попытке извлечения первого результата.
Если первый аргумент установлен в null, он вернет список ранее зарегистрированных функций MapReduce. Это устарело с версии 3.6.0 - используйте getMapReducers() вместо этого.
Если третий аргумент установлен в true, он удалит предыдущие функции map и reduce и заменит их переданными аргументами.
Параметры
- вызываемая функция
$mapperнеобязательно null - Вызываемая функция mapper.
- вызываемая функция
$reducerнеобязательно null - Функция reduce.
- булево значение
$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-запроса и извлечения результатов, будет возвращен 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.8/class-Cake.Datasource.QueryTrait.html