Spec-Zone.ru › CakePHP 3.6

Трейт QueryTrait

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

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

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

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

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

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

  • $_mapReduce protected
    array

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

  • $_options protected
    array

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

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

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

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

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

  • aliasFields() public

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

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

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

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

    Устанавливает экземпляр запроса как запрос eager load. Если аргумент не передан, возвращается текущее значение конфигурации запроса _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

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

  • repository() public

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

  • setResult() public
    Устанавливает набор результатов для запроса.
  • toArray() public
    Возвращает массивное представление результатов после выполнения запроса.

Подробное описание методов

__call()source public

__call( string $method , array $arguments )

Позволяет вызывать методы из набора результатов так, как будто они принадлежат этому классу.

Параметры

строка $method
метод для вызова
массив $arguments
список аргументов для вызова метода

Возвращает

mixed

Исключения

BadMethodCallException
если такой метод не существует в наборе результатов

_decorateResults()source protected

_decorateResults( Traversable $result )

Декорирует итератор результатов процедурами MapReduce и средствами форматирования.

Параметры

Traversable $result
Исходные результаты

Возвращает

Cake\Datasource\ResultSetInterface

_decoratorClass()source protected

_decoratorClass( )

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

Возвращает

строка

_execute()source abstract protected

_execute( )

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

Возвращает

Traversable

aliasField()source public

aliasField( string $field , string|null $alias = null )

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

Если поле уже алиасировано, оно не будет изменено. Если $alias не передан, будет использована таблица по умолчанию для этого запроса.

Параметры

строка $field
Поле для алиасирования
строка|null $alias optional 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;
  });
});

Параметры

callable $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, которая будет выполняться поверх результатов базы данных. Как функция маппера, так и вызывающая функция должны быть вызываемыми объектами.

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

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

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

Параметры

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

Возвращает


$this|массив

См.

\Cake\Collection\Iterator\MapReduce для получения подробной информации о том, как передавать данные в 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-запроса и извлечения результатов, будет возвращен набор результатов, предоставленный этому методу.

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

Параметры

Cake\Datasource\ResultSetInterface $results
Результаты, которые должен вернуть этот запрос.

Возвращает


$this

toArray()source public

toArray( )

Возвращает массив представления результатов после выполнения запроса.

Возвращает

array

Подробное описание свойств

$_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

Набор результатов.

При установке выполнение запроса будет пропущено.

См. также

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

Spec-Zone.ru

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