Характеристика SelectableAssociationTrait
Представляет тип ассоциации, которая может быть получена с помощью другого запроса
Непосредственные известные пользователи
Cake\ORM\Association\BelongsTo, Cake\ORM\Association\ExternalAssociationTrait, Cake\ORM\Association\HasOneПодробное описание метода
_addFilteringConditionисходный код защищённый
_addFilteringCondition( Cake\ORM\Query $query , string|array $key , mixed $filter )
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запрос целевой таблицы, учитывая ключ фильтра и некоторые значения фильтра.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- строка|массив
$key - поля, которые должны использоваться для фильтрации
- смешанное
$filter - значение, которое должно использоваться для соответствия $key
Возвращает
Cake\ORM\Query\Cake\ORM\Query
_addFilteringJoinисходный код публичный
_addFilteringJoin( Cake\ORM\Query $query , string $key , Cake\ORM\Query $subquery )
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запрос целевой таблицы, учитывая ключ фильтра и некоторые значения фильтра, когда фильтрация должна выполняться с помощью подзапроса.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- строка
$key - поля, которые должны использоваться для фильтрации
-
Cake\ORM\Query$subquery - Подзапрос для использования в фильтрации
Возвращает
Cake\ORM\Query\Cake\ORM\Query
_buildQueryисходный код защищённый
_buildQuery( array $options )
Вспомогательная функция для построения нового объекта Query, возвращающего все записи в целевой таблице, связанные с теми, которые указаны в $options из исходной таблицы
Параметры
- массив
$options - опции, принимаемые eagerLoader()
Возвращает
Cake\ORM\Query\Cake\ORM\Query
Выбрасывает
InvalidArgumentExceptionКогда ключ необходим для ассоциаций, но не выбран.
_buildResultMapисходный код абстрактный защищённый
_buildResultMap( Cake\ORM\Query $fetchQuery , array $options )
Строит массив, содержащий результаты из fetchQuery, индексированные по значению foreignKey, соответствующему данной ассоциации.
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос для получения результатов
- массив
$options - Опции, переданные в eager loader
Возвращает
arrayмассив
_buildSubqueryисходный код защищённый
_buildSubquery( Cake\ORM\Query $query )
Строит запрос, используемый в качестве условия для фильтрации записей в целевой таблице, он построен путем клонирования исходного запроса, который использовался для загрузки записей в исходной таблице.
Параметры
-
Cake\ORM\Query$query - исходный запрос, используемый для загрузки исходных записей
Возвращает
Cake\ORM\Query\Cake\ORM\Query
_createTupleConditionисходный код защищённый
_createTupleCondition( Cake\ORM\Query $query , array $keys , mixed $filter , string $operator )
Возвращает объект TupleComparison, который может использоваться для сопоставления всех полей из $keys со значениями кортежа в $filter с помощью указанного оператора.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- массив
$keys - поля, которые должны использоваться для фильтрации
- смешанное
$filter - значение, которое должно использоваться для соответствия $key
- строка
$operator - Оператор для сравнения кортежей
Возвращает
Cake\Database\Expression\TupleComparison\Cake\Database\Expression\TupleComparison
_defaultOptionsисходный код защищённый
_defaultOptions( )
Возвращает значения по умолчанию для использования в eagerLoader
Возвращает
arrayмассив
_linkFieldисходный код абстрактный защищённый
_linkField( array $options )
Генерирует строку, используемую в качестве поля таблицы, содержащей значения, по которым следует применять фильтр.
Параметры
- массив
$options - Опции для получения поля связи.
Возвращает
string|arrayстрока|массив
_multiKeysInjectorисходный код защищённый
_multiKeysInjector( array $resultMap , array $sourceKeys , string $nestKey )
Возвращает вызываемый элемент, который будет использоваться для каждой строки в наборе результатов запроса для вставки загруженных строк, когда соответствие должно выполняться с несколькими внешними ключами.
Параметры
- массив
$resultMap - Массив с индексированными ключами, содержащий целевую таблицу
- массив
$sourceKeys - Массив с алиасами ключей для соответствия
- строка
$nestKey - Ключ, под которым результаты должны быть вложены
Возвращает
Closure\Closure
_resultInjectorисходный код защищённый
_resultInjector( Cake\ORM\Query $fetchQuery , array $resultMap , array $options )
Возвращает вызываемый элемент, который будет использоваться для каждой строки в наборе результатов запроса для вставки загруженных строк.
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос, используемый для получения результатов
- массив
$resultMap - массив с внешними ключами в качестве ключей и соответствующими результатами целевой таблицы в качестве значений.
- массив
$options - Опции, переданные методу eagerLoader
Возвращает
Closure\Closure
_subqueryFieldsисходный код защищённый
_subqueryFields( Cake\ORM\Query $query )
Вычисляет поля, которые должны участвовать в подзапросе.
Обычно это включает столбцы ключа связывания. Если есть ORDER BY, эти столбцы также включаются, так как поля могут быть вычислены или представлять собой постоянные значения, которые должны присутствовать, чтобы обеспечить загрузку правильных данных ассоциации.
Параметры
-
Cake\ORM\Query$query - Запрос для получения полей.
Возвращает
arrayСписок полей для подзапроса.
eagerLoaderисходный код публичный
eagerLoader( array $options )
requiresKeysисходный код публичный
requiresKeys( array $options [] )
Возвращает true, если процесс eager loading потребует набор связующих ключей таблицы владельца, чтобы использовать их в качестве фильтра в запросе поиска.
Параметры
- массив
$optionsнеобязательно [] - Опции, содержащие используемую стратегию.
Возвращает
booleantrue, если потребуется список ключей
© 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.1/class-Cake.ORM.Association.SelectableAssociationTrait.html