Трейт QueryTrait
Содержит характеристики объекта, прикрепленного к хранилищу, и может извлекать результаты на основе любых критериев.
Прямые известные пользователи
Cake\ORM\QueryПодробное описание методов
__callисточник public
__call( string $method , array $arguments )
Разрешает вызывать методы из набора результатов так, как будто они принадлежат этому классу
Параметры
- строка
$method - вызываемый метод
- массив
$arguments - список аргументов для вызываемого метода
Возвращает
mixedсмешанный тип
Выбрасывает
BadMethodCallExceptionесли такой метод не существует в наборе результатов
_decorateResultsисточник protected
_decorateResults( Traversable $result )
Декорирует итератор результатов с помощью MapReduce и форматирования
Параметры
- Traversable
$result - Оригинальные результаты
Возвращает
Cake\Datasource\ResultSetInterface\Cake\Datasource\ResultSetInterface
_decoratorClassисточник protected
_decoratorClass( )
Возвращает имя класса, используемого для декорирования результатов
Возвращает
stringстрока
_executeисточник abstract protected
_execute( )
Выполняет запрос и возвращает объект-перечислитель, содержащий результаты
Возвращает
Traversable\Перечислитель
aliasFieldисточник public
aliasField( string $field , string $alias null )
Возвращает массив ключ => значение, представляющий одно алиасноё поле, которое можно напрямую передать в метод select(). Ключ будет содержать псевдоним, а значение — фактическое имя поля.
Если поле уже имеет псевдоним, оно не будет изменено. Если $alias не передан, будет использована таблица по умолчанию для этого запроса.
Параметры
- строка
$field - Поле для присвоения псевдонима
- строка
$aliasнеобязательно null - псевдоним, используемый для префикса поля
Возвращает
arrayмассив
aliasFieldsисточник public
aliasFields( array $fields , string|null $defaultAlias null )
Выполняет aliasField() для каждого поля в предоставленном списке и возвращает результат в одном массиве.
Параметры
- массив
$fields - Поля для присвоения псевдонимов
- строка|null
$defaultAliasнеобязательно null - Значение псевдонима по умолчанию
Возвращает
arrayмассив
allисточник public
all( )
Извлекает результаты для этого запроса.
Возвращает либо набор результатов через setResult(), либо выполняет этот запрос и возвращает объект ResultSetDecorator, готовый для потоковой передачи результатов.
ResultSetDecorator — это объект-перечислитель, реализующий методы из Cake\Collection\Collection.
Возвращает
Cake\Datasource\ResultSetInterface\Cake\Datasource\ResultSetInterface
applyOptionsисточник abstract public
applyOptions( array $options )
Заполняет или добавляет части к текущим условиям запроса с помощью массива. Это удобно для передачи всех условий запроса сразу.
Параметры
- массив
$options - параметры, которые нужно применить
Возвращает
mixedтекущий объект
cacheисточник 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' - Имя конфигурации кэша или экземпляр конфигурации кэша.
Возвращает
mixedтекущий экземпляр
eagerLoadedисточник public
eagerLoaded( boolean|null $value null )
Устанавливает экземпляр запроса в качестве загружаемого с помощью жадного поиска. Если аргумент не передан, возвращается текущее значение конфигурации запроса _eagerLoaded.
Параметры
- булево|null
$valueнеобязательно null - Загружать с помощью жадного поиска или нет.
Возвращает
mixedтекущий экземпляр|Cake\ORM\Query
firstисточник public
first( )
Возвращает первый результат из выполнения этого запроса. Если запрос не был выполнен ранее, он установит условие limit в 1 для повышения производительности.
Пример:
$singleUser = $query->select(['id', 'username'])->first();
Возвращает
mixedпервый результат из набора результатов
firstOrFailисточник public
firstOrFail( )
Получить первый результат из выполняемого запроса или вызвать исключение.
Возвращает
mixedПервый результат из набора результатов.
Выбрасывает
Cake\Datasource\Exception\RecordNotFoundExceptionЕсли первый записи нет.
formatResultsисточник public
formatResults( callable $formatter null , boolean|integer $mode 0 )
Регистрирует новую функцию-обработчик форматирования, которая должна выполняться при попытке извлечь результаты из базы данных.
Функции-обработчики форматирования получат первый параметр, итератор, который можно перебирать и изменять по своему усмотрению.
Функции-обработчики должны возвращать объект-итератор, который будет использоваться в качестве возвращаемого значения для результата этого запроса. Функции-обработчики форматирования применяются после выполнения всех процедур 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 - Вызываемая функция форматирования.
- булево|целое число
$modeнеобязательно 0 - Заменять, добавлять или вставлять форматировщик.
Возвращает
mixedтекущий экземпляр|массив
getIteratorисточник public
getIterator( )
Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать запрос без ручного вызова execute(), делая его похожим на набор результатов, а не на сам запрос.
Возвращает
Iterator\Итератор
getOptionssource public
getOptions( )
Возвращает массив с настраиваемыми параметрами, которые были применены к этому запросу и которые ещё не были обработаны другим методом в этом классе.
Пример:
$query->applyOptions(['doABarrelRoll' => true, 'fields' => ['id', 'name']); $query->getOptions(); // Returns ['doABarrelRoll' => true]
Возвращает
arrayмассив
См. также
\Cake\ORM\Query::applyOptions() для получения информации о параметрах, которые будут обработаны этим классом и не будут возвращены этой функциейmapReducesource public
mapReduce( callable $mapper null , callable $reducer null , boolean $overwrite false )
Регистрирует новую процедуру MapReduce, которая должна быть выполнена поверх результатов базы данных. Как вызываемый объект, так и вызываемый объект-маппер должны быть вызываемыми объектами.
Маршрутизация MapReduce будет выполняться только при выполнении запроса и попытке извлечения первого результата.
Если первый аргумент установлен в null, он вернёт список ранее зарегистрированных процедур map-reduce.
Если третий аргумент установлен в true, предыдущие map-reducers будут удалены и заменены переданными аргументами.
Параметры
- callable
$mapperнеобязательно null - Вызываемый объект-маппер.
- callable
$reducerнеобязательно null - Функция редукции.
- boolean
$overwriteнеобязательно false - Установите в значение true, чтобы перезаписать существующие функции map + reduce.
Возвращает
mixed$this|массив
См. также
\Cake\Collection\Iterator\MapReduce для получения подробной информации о том, как передавать данные методу emit map-reducer.repositorysource public
repository( Cake\Datasource\RepositoryInterface $table null )
Возвращает стандартный объект таблицы, который будет использоваться этим запросом, то есть таблицу, которая будет отображаться в предложении from.
При вызове с аргументом Table стандартный объект таблицы будет установлен, и этот объект запроса будет возвращен для цепочки.
Параметры
-
Cake\Datasource\RepositoryInterface$tableнеобязательно null - Стандартный объект таблицы для использования
Возвращает
Cake\Datasource\RepositoryInterface|$this$this
setResultsource public
setResult( Cake\Datasource\ResultSetInterface $results )
Устанавливает набор результатов для запроса.
Установка набора результатов запроса сделает execute() бесполезным действием. Вместо выполнения SQL-запроса и извлечения результатов, будет возвращен ResultSet, предоставленный этому методу.
Этот метод наиболее полезен в сочетании с результатами, хранящимися в постоянном кэше.
Параметры
-
Cake\Datasource\ResultSetInterface$results - Результаты, которые должен вернуть этот запрос.
Возвращает
mixed$this Объект запроса.
toArraysource public
toArray( )
Возвращает представление результатов в виде массива после выполнения запроса.
Возвращает
arrayмассив
Краткое описание свойств
© 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.1/class-Cake.Datasource.QueryTrait.html