Spec-Zone.ru › CakePHP 4.3

Класс SelectLoader

Реализует логику загрузки ассоциации с помощью запроса SELECT

Пространство имён: Cake\ORM\Association\Loader

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

  • $alias protected
    string

    Псевдоним ассоциации, загружающей результаты

  • $associationType protected
    string

    Тип ассоциации, вызывающей загрузку

  • $bindingKey protected
    string

    Ключ привязки для исходной ассоциации.

  • $finder protected
    callable

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

  • $foreignKey protected
    array|string

    Внешний ключ целевой ассоциации

  • $sort protected
    string

    Параметры сортировки для загрузки ассоциации

  • $sourceAlias protected
    string

    Псевдоним исходной ассоциации

  • $strategy protected
    string

    Стратегия, используемая для загрузки: select или подзапрос

  • $targetAlias protected
    string

    Псевдоним целевой ассоциации

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

  • __construct() public

    Копирует массив опций в свойства данного класса. Ключи в массиве соответствуют свойствам данного класса.

  • _addFilteringCondition() protected

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

  • _addFilteringJoin() protected

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

  • _assertFieldsPresent() protected

    Проверяет, что в запросе выборки либо включены автоматические поля, либо выбраны поля внешнего ключа. Если требуемые поля отсутствуют, генерируется исключение.

  • _buildQuery() protected

    Вспомогательная функция для построения нового объекта запроса, возвращающего все записи в целевой таблице, связанные с указанными в $options из исходной таблицы.

  • _buildResultMap() protected

    Строит массив, содержащий результаты из fetchQuery, индексированные значением внешнего ключа, соответствующего данной ассоциации.

  • _buildSubquery() protected

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

  • _createTupleCondition() protected

    Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежа в $filter с использованием предоставленного оператора.

  • _defaultOptions() protected

    Возвращает стандартные опции для использования с eagerLoader

  • _extractFinder() protected

    Вспомогательный метод для вывода запрошенного findera и его опций.

  • _linkField() protected

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

  • _multiKeysInjector() protected

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

  • _resultInjector() protected

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

  • _subqueryFields() protected

    Вычисляет поля, которые должны участвовать в подзапросе.

  • buildEagerLoader() public

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

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

__construct() public

__construct(array<string, mixed> $options)

Копирует массив опций в свойства этого класса. Ключи в массиве соответствуют свойствам в этом классе.

Параметры

array<string, mixed> $options

Свойства, которые должны быть скопированы в этот класс

_addFilteringCondition() protected

_addFilteringCondition(Cake\ORM\Query $query, array<string>|string $key, mixed $filter): Cake\ORM\Query

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

Параметры

Cake\ORM\Query $query

Запрос целевой таблицы

array<string>|string $key

Поля, которые должны использоваться для фильтрации

mixed $filter

Значение, которое должно использоваться для соответствия $key

Возвращает

Cake\ORM\Query

_addFilteringJoin() protected

_addFilteringJoin(Cake\ORM\Query $query, array<string>|string $key, Cake\ORM\Query $subquery): Cake\ORM\Query

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

Параметры

Cake\ORM\Query $query

Запрос целевой таблицы

array<string>|string $key

Поля, которые должны использоваться для фильтрации

Cake\ORM\Query $subquery

Подзапрос, который нужно использовать для фильтрации

Возвращает

Cake\ORM\Query

_assertFieldsPresent() protected

_assertFieldsPresent(Cake\ORM\Query $fetchQuery, array<string> $key): void

Проверяет, что в запросе выборки есть поля автоматического определения или выбраны поля foreignKey. Если необходимые поля отсутствуют, выбрасывает исключение.

Параметры

Cake\ORM\Query $fetchQuery

Запрос выборки ассоциации

array<string> $key

Поля внешнего ключа для проверки

Возвращает

void

Исключения

InvalidArgumentException

_buildQuery() protected

_buildQuery(array<string, mixed> $options): Cake\ORM\Query

Вспомогательная функция для построения нового объекта Query, возвращающего все записи в целевой таблице, связанные с теми, что указаны в $options из исходной таблицы

Параметры

array<string, mixed> $options

опции, принятые eagerLoader()

Возвращает

Cake\ORM\Query

Исключения

InvalidArgumentException
При необходимости ключа для ассоциаций, но он не выбран.

_buildResultMap() protected

_buildResultMap(Cake\ORM\Query $fetchQuery, array<string, mixed> $options): array<string, mixed>

Создаёт массив, содержащий результаты из fetchQuery, индексированный по значению внешнего ключа, соответствующему этой ассоциации.

Параметры

Cake\ORM\Query $fetchQuery

Запрос для получения результатов

array<string, mixed> $options

Опции, переданные в eagerLoader

Возвращает

array<string, mixed>

_buildSubquery() protected

_buildSubquery(Cake\ORM\Query $query): Cake\ORM\Query

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

Параметры

Cake\ORM\Query $query

исходный запрос, используемый для загрузки записей из исходной таблицы

Возвращает

Cake\ORM\Query

_createTupleCondition() protected

_createTupleCondition(Cake\ORM\Query $query, array<string> $keys, mixed $filter, string $operator): Cake\Database\Expression\TupleComparison

Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежа в $filter с использованием предоставленного оператора.

Параметры

Cake\ORM\Query $query

Запрос целевой таблицы

array<string> $keys

Поля, которые должны использоваться для фильтрации

mixed $filter

Значение, которое должно использоваться для соответствия $key

string $operator

Оператор для сравнения кортежей

Возвращает

Cake\Database\Expression\TupleComparison

_defaultOptions() protected

_defaultOptions(): array

Возвращает значения по умолчанию для eagerLoader

Возвращает

array

_extractFinder() protected

_extractFinder(array|string $finderData): array

Вспомогательный метод для определения запрошенного findera и его опций.

Возвращает выведенные опции из findera $type.

Примеры:

Следующее вызовет finder 'translations' со значением findera в качестве своих опций: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);

Параметры

array|string $finderData

Имя findera или массив, содержащий имя в качестве ключа и опции в качестве значения.

Возвращает

array

_linkField() protected

_linkField(array<string, mixed> $options): array<string>|string

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

Параметры

array<string, mixed> $options

Опции для получения поля связи.

Возвращает

array<string>|string

Исключения

RuntimeException

_multiKeysInjector() protected

_multiKeysInjector(array<string, mixed> $resultMap, array<string> $sourceKeys, string $nestKey): Closure

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

Параметры

array<string, mixed> $resultMap

Массив с ключами, содержащий целевую таблицу

array<string> $sourceKeys

Массив с алиасами ключей для сопоставления

string $nestKey

Ключ, под которым должны быть вложены результаты

Возвращает

Closure

_resultInjector() protected

_resultInjector(Cake\ORM\Query $fetchQuery, array<string, mixed> $resultMap, array<string, mixed> $options): Closure

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

Параметры

Cake\ORM\Query $fetchQuery

Запрос, используемый для извлечения результатов

array<string, mixed> $resultMap

Массив с внешним ключом в качестве ключей и соответствующими результатами целевой таблицы в качестве значения.

array<string, mixed> $options

Опции, переданные методу eagerLoader

Возвращает

Closure

_subqueryFields() protected

_subqueryFields(Cake\ORM\Query $query): array<string, array>

Вычисляет поля, которые должны участвовать в подзапросе.

Как правило, это включает столбцы ключей привязки. Если есть ORDER BY, эти столбцы также включаются, так как поля могут быть вычислены или иметь постоянные значения, которые должны присутствовать, чтобы гарантировать загрузку правильных данных об ассоциации.

Параметры

Cake\ORM\Query $query

Запрос для получения полей.

Возвращает

array<string, array>

buildEagerLoader() public

buildEagerLoader(array<string, mixed> $options): Closure

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

Параметры

array<string, mixed> $options

Те же опции, что и Association::eagerLoader()

Возвращает

Closure

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

$alias защищенное

Псевдоним загрузки результатов ассоциации

Тип

string

$associationType защищенное

Тип ассоциации, вызывающей загрузку

Тип

string

$bindingKey защищенное

Ключ привязки для исходной ассоциации.

Тип

string

$finder защищенное

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

Тип

callable

$foreignKey защищенное

Внешний ключ для целевой ассоциации

Тип

array|string

$sort защищенное

Параметры сортировки для загрузки ассоциации

Тип

string

$sourceAlias защищенное

Псевдоним исходной ассоциации

Тип

string

$strategy защищенное

Стратегия загрузки: выборка или подзапрос

Тип

string

$targetAlias защищенное

Псевдоним целевой ассоциации

Тип

string

© 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/4.3/class-Cake.ORM.Association.Loader.SelectLoader.html

Spec-Zone.ru

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