Spec-Zone.ru › CakePHP 3.8

Трейт 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
    Объект ResultSet.

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

  • __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
    Возвращает список ранее зарегистрированных процедур 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( )

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

Возвращает

Traversable

aliasField()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\ResultSetInterface

applyOptions()source абстрактный public

applyOptions( array $options )

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

Параметры

массив $options
применяемые параметры

Возвращает


$this
END_OF_DOCUMENT_MARKER

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() вручную, тем самым делая его похожим на результирующий набор вместо самого запроса.

Возвращаемое значение

Iterator

getMapReducers()source public

getMapReducers( )

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

Возвращаемое значение

array

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

Возвращает

булево значение

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

Spec-Zone.ru

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