Трейт SelectableAssociationTrait
Представляет тип ассоциации, который можно извлечь с помощью другого запроса
Прямые пользователи
- Cake\ORM\Association\BelongsTo
- Cake\ORM\Association\ExternalAssociationTrait
- Cake\ORM\Association\HasOne
Расположение: ORM/Association/SelectableAssociationTrait.php
Краткое описание методов
- _addFilteringCondition() protected
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запросе целевой таблицы, заданного ключом фильтра и некоторыми значениями фильтра.
- _addFilteringJoin() public
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запросе целевой таблицы, заданного ключом фильтра и некоторыми значениями фильтра, когда фильтрация должна выполняться с помощью подзапроса.
- _assertFieldsPresent() protected
Проверяет, что запрос извлечения имеет включенные автоматические поля или выбраны поля foreignKey. Если необходимые поля отсутствуют, выбрасывается исключение.
- _buildQuery() protected
Вспомогательная функция для построения нового объекта запроса для возвращения всех записей в целевой таблице, связанных с теми, которые указаны в $options из исходной таблицы
-
Строит массив, содержащий результаты из fetchQuery, индексированные значением foreignKey, соответствующим этой ассоциации.
- _buildSubquery() protected
Строит запрос, используемый в качестве условия для фильтрации записей в целевой таблице, он создаётся путём клонирования исходного запроса, использовавшегося для загрузки записей в исходной таблице.
- _createTupleCondition() protected
Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежа в $filter с использованием предоставленного оператора.
- _defaultOptions() protectedВозвращает значения по умолчанию для использования с eagerLoader
-
Генерирует строку, используемую в качестве поля таблицы, содержащего значения, по которым должен применяться фильтр
- _multiKeysInjector() protected
Возвращает вызываемый элемент, используемый для каждой строки в наборе результатов запроса для вставки загруженных жадно строк, когда соответствие должно выполняться с несколькими внешними ключами
- _resultInjector() protected
Возвращает вызываемый элемент, используемый для каждой строки в наборе результатов запроса для вставки загруженных жадно строк
- _subqueryFields() protectedВычисляет поля, которые должны участвовать в подзапросе.
- eagerLoader() public
- requiresKeys() public
Возвращает true, если процесс жадной загрузки потребует набора связывающих ключей таблицы владельца для использования их в качестве фильтра в запросе поиска.
Подробное описание методов
_addFilteringCondition()source protected
_addFilteringCondition( Cake\ORM\Query $query , string|array $key , mixed $filter )
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запросе целевой таблицы, заданного ключом фильтра и некоторыми значениями фильтра.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- string|array
$key - поля, которые должны использоваться для фильтрации
- mixed
$filter - значение, которое должно использоваться для соответствия $key
Возвращает
Cake\ORM\Query_addFilteringJoin()source public
_addFilteringJoin( Cake\ORM\Query $query , string $key , Cake\ORM\Query $subquery )
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запросе целевой таблицы, заданного ключом фильтра и некоторыми значениями фильтра, когда фильтрация должна выполняться с помощью подзапроса.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- string
$key - поля, которые должны использоваться для фильтрации
-
Cake\ORM\Query$subquery - Подзапрос для фильтрации
Возвращает
Cake\ORM\Query_assertFieldsPresent()source protected
_assertFieldsPresent( Cake\ORM\Query $fetchQuery , array $key )
Проверяет, что запрос извлечения имеет включенные автоматические поля или выбраны поля foreignKey. Если необходимые поля отсутствуют, выбрасывается исключение.
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос извлечения ассоциации
- array
$key - Поля внешнего ключа для проверки
Исключения
InvalidArgumentException_buildQuery()source protected
_buildQuery( array $options )
Вспомогательная функция для построения нового объекта запроса для возвращения всех записей в целевой таблице, связанных с теми, которые указаны в $options из исходной таблицы
Параметры
- array
$options - параметры, принимаемые eagerLoader()
Возвращает
Cake\ORM\QueryИсключения
InvalidArgumentExceptionПри необходимости ключа для ассоциаций, но он не выбран.
_buildResultMap()source abstract protected
_buildResultMap( Cake\ORM\Query $fetchQuery , array $options )
Строит массив, содержащий результаты из fetchQuery, индексированные значением foreignKey, соответствующим этой ассоциации.
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос для получения результатов
- array
$options - Параметры, переданные в eager loader
Возвращает
array_buildSubquery()source protected
_buildSubquery( Cake\ORM\Query $query )
Строит запрос, используемый в качестве условия для фильтрации записей в целевой таблице, он создаётся путём клонирования исходного запроса, использовавшегося для загрузки записей в исходной таблице.
Параметры
-
Cake\ORM\Query$query - исходный запрос, использовавшийся для загрузки записей из исходной таблицы
Возвращает
Cake\ORM\Query_createTupleCondition()source protected
_createTupleCondition( Cake\ORM\Query $query , array $keys , mixed $filter , string $operator )
Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежа в $filter с использованием предоставленного оператора.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- array
$keys - поля, которые должны использоваться для фильтрации
- mixed
$filter - значение, которое должно использоваться для соответствия $key
- string
$operator - Оператор сравнения кортежей
Возвращает
Cake\Database\Expression\TupleComparison_defaultOptions()source protected
_defaultOptions( )
Возвращает значения по умолчанию для использования с eagerLoader
Возвращает
array_linkField()source abstract protected
_linkField( array $options )
Генерирует строку, используемую в качестве поля таблицы, содержащего значения, по которым должен применяться фильтр
Параметры
- массив
$options - Параметры для получения поля связи.
Возвращает
строка|массив_multiKeysInjector()source protected
_multiKeysInjector( array $resultMap , array $sourceKeys , string $nestKey )
Возвращает вызываемый объект, который будет использоваться для каждого ряда в наборе результатов запроса для вставки загруженных с жадностью строк, когда сопоставление должно выполняться с помощью нескольких внешних ключей
Параметры
- массив
$resultMap - Массив с ключами, содержащими целевую таблицу
- массив
$sourceKeys - Массив с алиасами ключей для сопоставления
- строка
$nestKey - Ключ, под которым результаты должны быть вложены
Возвращает
Closure_resultInjector()source protected
_resultInjector( Cake\ORM\Query $fetchQuery , array $resultMap , array $options )
Возвращает вызываемый объект, который будет использоваться для каждой строки в наборе результатов запроса для вставки загруженных с жадностью строк
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос, используемый для извлечения результатов
- массив
$resultMap Массив с внешним ключом в качестве ключей и соответствующими результатами целевой таблицы в качестве значения.
- массив
$options - Параметры, переданные методу eagerLoader
Возвращает
Closure_subqueryFields()source protected
_subqueryFields( Cake\ORM\Query $query )
Вычисляет поля, которые должны участвовать в подзапросе.
Обычно это включает столбцы ключа связи. Если есть ORDER BY, эти столбцы также включаются, так как поля могут быть вычисленными или постоянными значениями, которые должны присутствовать, чтобы гарантировать загрузку правильных данных ассоциации.
Параметры
-
Cake\ORM\Query$query - Запрос для получения полей.
Возвращает
массивСписок полей для подзапроса.
eagerLoader()source public
eagerLoader( array $options )
requiresKeys()source public
requiresKeys( array $options [] )
Возвращает true, если процесс жадной загрузки потребует набора связывающих ключей таблицы владельца, чтобы использовать их в качестве фильтра в запросе на поиск.
Параметры
- массив
$optionsнеобязательно [] - Параметры, содержащие используемую стратегию.
Возвращает
логическоеtrue, если список ключей потребуется
© 2005–2017 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.3/class-Cake.ORM.Association.SelectableAssociationTrait.html