Трейт SelectableAssociationTrait
Представляет тип ассоциации, которую можно получить с помощью другого запроса
Прямые пользователи
- Cake\ORM\Association\BelongsTo
- Cake\ORM\Association\ExternalAssociationTrait
- Cake\ORM\Association\HasOne
Расположение: ORM/Association/SelectableAssociationTrait.php
Краткое описание методов
- _addFilteringCondition() protected
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запрос целевой таблицы, учитывая ключ фильтра и некоторые значения фильтра.
- _addFilteringJoin() public
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запрос целевой таблицы, учитывая ключ фильтра и некоторые значения фильтра, когда фильтрация должна выполняться с помощью подзапроса.
- _buildQuery() protected
Вспомогательная функция для построения нового объекта Query, возвращающего все записи в целевой таблице, связанные с теми, которые указаны в $options из исходной таблицы
-
Строит массив, содержащий результаты из fetchQuery, индексированные значением foreignKey, соответствующим данной ассоциации.
- _buildSubquery() protected
Строит запрос, используемый в качестве условия для фильтрации записей в целевой таблице. Он создаётся путем клонирования исходного запроса, используемого для загрузки записей в исходной таблице.
- _createTupleCondition() protected
Возвращает объект TupleComparison, который можно использовать для сопоставления всех полей из $keys со значениями кортежа в $filter с использованием предоставленного оператора.
- _defaultOptions() protectedВозвращает значения по умолчанию для eagerLoader
-
Генерирует строку, используемую в качестве поля таблицы, содержащего значения, на основе которых должен применяться фильтр
- _multiKeysInjector() protected
Возвращает вызываемый объект, который используется для каждой строки в наборе результатов запроса для вставки загруженных с помощью eager loading строк, когда соответствие должно осуществляться по нескольким внешним ключам.
- _resultInjector() protected
Возвращает вызываемый объект, который используется для каждой строки в наборе результатов запроса для вставки загруженных с помощью eager loading строк.
- _subqueryFields() protectedРассчитывает поля, которые должны участвовать в подзапросе.
- eagerLoader() public
- requiresKeys() public
Возвращает true, если процесс eager loading потребует набор связывающих ключей таблицы владельца, чтобы использовать их в качестве фильтра в запросе на поиск.
Подробное описание методов
_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_buildQuery()source protected
_buildQuery( array $options )
Вспомогательная функция для построения нового объекта Query, возвращающего все записи в целевой таблице, связанные с теми, которые указаны в $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 )
Генерирует строку, используемую в качестве поля таблицы, содержащего значения, на основе которых должен применяться фильтр
Параметры
- array
$options - Параметры для получения поля связи.
Возвращает
string|array_multiKeysInjector()source protected
_multiKeysInjector( array $resultMap , array $sourceKeys , string $nestKey )
Возвращает вызываемый объект, используемый для каждого ряда в наборе результатов запроса для вставки загруженных с жадностью строк, когда сопоставление должно выполняться с несколькими внешними ключами
Параметры
- массив
$resultMap - Массив с ключами, содержащий целевую таблицу
- массив
$sourceKeys - Массив с алиасами ключей для сопоставления
- строка
$nestKey - Ключ, под которым результаты должны быть вложены
Возвращает
Закрытие_resultInjector()source protected
_resultInjector( Cake\ORM\Query $fetchQuery , array $resultMap , array $options )
Возвращает вызываемый объект, используемый для каждого ряда в наборе результатов запроса для вставки загруженных с жадностью строк
Параметры
-
Cake\ORM\Query$fetchQuery - Используемый для получения результатов запрос
- массив
$resultMap Массив с внешними ключами в качестве ключей и соответствующими результатами целевой таблицы в качестве значений.
- массив
$options - Параметры, переданные методу eagerLoader
Возвращает
Закрытие_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–2016 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.
http://api.cakephp.org/3.2/class-Cake.ORM.Association.SelectableAssociationTrait.html