Spec-Zone.ru › CakePHP 3.7

Трейт QueryTrait

Содержит характеристики объекта, прикреплённого к репозиторию, и может извлекать результаты на основе любых критериев.

Прямые пользователи

  • Cake\ORM\Query
Пространство имён: Cake\Datasource
Расположение: Datasource/QueryTrait.php

Краткое описание свойств

  • $_cache protected
    Cake\Datasource\QueryCacher|null
    Экземпляр кэша запросов, если для этого запроса включён кэширование.
  • $_eagerLoaded protected
    boolean
    Является ли запрос автономным или результатом операции жадного загрузки.
  • $_formatters protected
    callable[]

    Список классов или обратных вызовов форматирования, которые будут выполнять постобработку результатов при извлечении.

  • $_mapReduce protected
    array

    Список процедур map-reduce, которые должны быть применены к результату запроса.

  • $_options protected
    array

    Содержит любые пользовательские параметры, переданные с помощью applyOptions, которые не могли быть обработаны каким-либо методом в этом классе.

  • $_repository protected
    Cake\Datasource\RepositoryInterface
    Экземпляр объекта таблицы, к которому привязан этот запрос.
  • $_results protected
    Cake\Datasource\ResultSetInterface|null
    Результиновый набор.

Краткое описание методов

  • __call() public
    Разрешает вызов методов из набора результатов как если бы они были из этого класса.
  • _decorateResults() protected
    Декорирует итератор результатов процедурами MapReduce и форматировщиками.
  • _decoratorClass() protected
    Возвращает имя класса, используемого для декорирования результатов.
  • _execute() abstract protected
    Выполняет этот запрос и возвращает итерируемый объект, содержащий результаты.
  • aliasField() public

    Возвращает массив ключ => значение, представляющий один алиасированный столбец, который можно передать непосредственно методу select(). Ключ будет содержать алиас, а значение — фактическое имя поля.

  • aliasFields() public

    Выполняет aliasField() для каждого поля в предоставленном списке и возвращает результат в одном массиве.

  • all() public
    Извлечь результаты для этого запроса.
  • applyOptions() abstract public

    Заполняет или добавляет части текущих условий запроса, используя массив. Это удобно для передачи всех условий запроса сразу.

  • cache() public
    Включить кэширование результатов для этого запроса.
  • eagerLoaded() public deprecated

    Устанавливает экземпляр запроса как запрос с жадной загрузкой. Если аргумент не передан, возвращается текущее значение конфигурации запроса _eagerLoaded.

  • first() public

    Возвращает первый результат выполнения этого запроса. Если запрос ещё не выполнялся, он установит ограничение на 1 для повышения производительности.

  • firstOrFail() public
    Получить первый результат из выполняемого запроса или вызвать исключение.
  • formatResults() public

    Регистрирует новую функцию обратного вызова форматирования, которая должна выполняться при попытке извлечь результаты из базы данных.

  • getIterator() public

    Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать по запросу без необходимости вызова execute() вручную, тем самым, делая его похожим на набор результатов, а не на сам запрос.

  • getMapReducers() public
    Возвращает список ранее зарегистрированных процедур map-reduce.
  • getOptions() public

    Возвращает массив с пользовательскими параметрами, которые были применены к этому запросу и которые ещё не обрабатывались другим методом в этом классе.

  • getRepository() public

    Возвращает объект таблицы по умолчанию, который будет использоваться этим запросом, то есть таблицу, которая появится в операторе from.

  • getResultFormatters() public
    Возвращает список ранее зарегистрированных процедур форматирования.
  • isEagerLoaded() public
    Возвращает текущее значение конфигурации запроса _eagerLoaded.
  • mapReduce() public

    Регистрирует новую процедуру map-reduce, которая должна выполняться поверх результатов базы данных. И вызываемый объект mapper, и вызываемый объект caller должны быть вызываемыми объектами.

  • 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
алиас, используемый для префикса поля

Возвращает

массив
END_OF_DOCUMENT_MARKER

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\ResultSetInterface

applyOptions()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|строка|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|bool

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 )

Регистрирует новую функцию обратного вызова для форматирования, которая должна быть выполнена при попытке получения результатов из базы данных.

Функции форматирования получат в качестве первого аргумента объект, реализующий \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;
  });
});

Параметры

вызываемая функция $formatter необязательно null
Вызываемая функция форматирования.
boolean|целое число $mode необязательно 0
Заменить, добавить или добавить форматировщик.

Возвращает


$this|массив

getIterator()source public

getIterator( )

Выполняет этот запрос и возвращает итератор результатов. Эта функция необходима для реализации интерфейса IteratorAggregate и позволяет итерировать запрос без ручного вызова execute(), что позволяет ему выглядеть как набор результатов, а не как сам запрос.

Возвращает

Итератор

getMapReducers()source public

getMapReducers( )

Возвращает список ранее зарегистрированных процедур map-reduce.

Возвращает

массив

getOptions()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\RepositoryInterface

getResultFormatters()source public

getResultFormatters( )

Возвращает список ранее зарегистрированных процедур форматирования.

Возвращает

массив

isEagerLoaded()source public

isEagerLoaded( )

Возвращает текущее значение конфигурации запроса _eagerLoaded.

Возвращает

boolean

mapReduce()source public

mapReduce( callable $mapper = null , callable $reducer = null , boolean $overwrite = false )

Регистрирует новую процедуру MapReduce, которая будет выполняться поверх результатов базы данных. Обе вызываемые функции mapper и caller должны быть вызываемыми объектами.

Маршрутизация MapReduce будет выполняться только при выполнении запроса и попытке извлечения первого результата.

Если первый аргумент равен null, возвращается список ранее зарегистрированных процедур map-reduce. Это устарело начиная с 3.6.0 - используйте getMapReducers() вместо этого.

Если третий аргумент равен true, он удалит предыдущие функции map-reduce и заменит их переданными аргументами.

Параметры

вызываемая функция $mapper необязательно null
Вызываемая функция mapper.
вызываемая функция $reducer необязательно null
Функция reduce.
boolean $overwrite необязательно false
Установите в значение true для перезаписи существующих функций map + reduce.

Возвращает


$this|массив

См.

\Cake\Collection\Iterator\MapReduce для получения подробной информации о том, как использовать передачу данных в процедуру map-reduce.
END_OF_DOCUMENT_MARKER

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.7/class-Cake.Datasource.QueryTrait.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API