Spec-Zone.ru › CakePHP 4.3

Класс SelectWithPivotLoader

Реализует логику загрузки ассоциации с помощью запроса SELECT и сводной таблицы

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

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

  • $alias protected
    string

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

  • $associationType protected
    string

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

  • $bindingKey protected
    string

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

  • $finder protected
    callable

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

  • $foreignKey protected
    array|string

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

  • $junctionAssoc protected
    Cake\ORM\Association\HasMany

    Экземпляр ассоциации соединения

  • $junctionAssociationName protected
    string

    Имя ассоциации соединения

  • $junctionConditions protected
    Cake\Database\ExpressionInterfaceClosure|array|string|null

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

  • $junctionProperty protected
    string

    Имя свойства для ассоциации соединения, где ее результаты должны быть вложены.

  • $sort protected
    string

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

  • $sourceAlias protected
    string

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

  • $strategy protected
    string

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

  • $targetAlias protected
    string

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

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

  • __construct() public

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

  • _addFilteringCondition() protected

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

  • _addFilteringJoin() protected

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

  • _assertFieldsPresent() protected

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

  • _buildQuery() protected

    Вспомогательная функция для создания нового объекта Query, чтобы вернуть все записи в целевой таблице, связанные с теми, которые указаны в $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

_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, индексированные по значению foreignKey, соответствующему этой ассоциации.

Параметры

Cake\ORM\Query $fetchQuery

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

array<string, mixed> $options

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

Возвращает

array<string, mixed>

Исключения

RuntimeException
когда свойство ассоциации не является частью набора результатов.

_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

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

Возвращает выведенные параметры из поиска $type.

Примеры:

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

Параметры

array|string $finderData

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

Возвращает

array

_linkField() protected

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

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

Параметры

array<string, mixed> $options

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

Возвращает

array<string>|string

_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

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

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 protected

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

Тип

string

$associationType protected

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

Тип

string

$bindingKey protected

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

Тип

string

$finder protected

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

Тип

callable

$foreignKey protected

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

Тип

array|string

$junctionAssoc protected

Экземпляр ассоциации соединения

Тип

Cake\ORM\Association\HasMany

$junctionAssociationName protected

Имя ассоциации соединения

Тип

string

$junctionConditions protected

Настраиваемые условия для ассоциации соединения

Тип

Cake\Database\ExpressionInterfaceClosure|array|string|null

$junctionProperty protected

Имя свойства для ассоциации соединения, где её результаты должны быть вложены.

Тип

string

$sort protected

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

Тип

string

$sourceAlias protected

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

Тип

string

$strategy protected

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

Тип

string

$targetAlias protected

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

Тип

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.SelectWithPivotLoader.html

Spec-Zone.ru

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