Класс HasMany
Представляет отношение N - 1, где целевая сторона отношения будет иметь один или несколько записей на каждую запись на стороне источника.
Пример ассоциации HasMany: Автор имеет множество статей.
- Cake\ORM\Association использует Cake\Core\ConventionsTrait, Cake\ORM\Locator\LocatorAwareTrait
-
Cake\ORM\Association\HasMany использует Cake\ORM\Association\DependentDeleteTrait, Cake\ORM\Association\ExternalAssociationTrait
Подробное описание методов
_foreignKeyAcceptsNullsource protected
_foreignKeyAcceptsNull( Cake\ORM\Table $table , array $properties )
Проверяет флаг nullable внешнего ключа
Параметры
-
Cake\ORM\Table$table - таблица, содержащая внешний ключ
- массив
$properties - список полей, составляющих внешний ключ
Возвращает
booleanbool
_linkFieldsource protected
_linkField( mixed $options )
_optionssource protected
_options( array $opts )
Парсинг дополнительных опций, переданных в конструктор.
Параметры
- массив
$opts - исходный список опций, переданных в конструктор
Переопределяет
Cake\ORM\Association::_options() _unlinksource protected
_unlink( array $foreignKey , Cake\ORM\Table $target , array $conditions [] , array $options [] )
Удаляет/устанавливает null связанные объекты, соответствующие $conditions. Действие зависит от зависимости между источником и целевыми объектами, а также от nullable внешнего ключа.
Параметры
- массив
$foreignKey - массив свойств внешнего ключа
-
Cake\ORM\Table$target - Связанная таблица
- массив
$conditionsопционально [] - Условие, указывающее, какие объекты нужно отсоединить
- массив
$optionsопционально [] - список опций, принимаемых
Table::delete()
Возвращает
booleanуспех
_unlinkAssociatedsource protected
_unlinkAssociated( array $properties , Cake\Datasource\EntityInterface $entity , Cake\ORM\Table $target , array $remainingEntities [] , array $options [] )
Удаляет/устанавливает null связанные объекты в зависимости от зависимости между источником и целевыми объектами и nullable внешним ключом. Пропускает удаление записей, присутствующих в $remainingEntities
Параметры
- массив
$properties - массив свойств внешнего ключа
-
Cake\Datasource\EntityInterface$entity - сущность, которая должна иметь свои связанные сущности отсоединёнными
-
Cake\ORM\Table$target - Связанная таблица
- массив
$remainingEntitiesопционально [] - Сущности, которые не должны быть удалены
- массив
$optionsопционально [] - список опций, принимаемых
Table::delete()
Возвращает
booleanуспех
isOwningSidesource public
isOwningSide( Cake\ORM\Table $side )
Возвращает true, если переданная таблица является стороной владельца для этой ассоциации. Это означает, что строки в таблице 'target' будут пропускать важную или необходимую информацию, если строка в 'source' не существует.
Параметры
-
Cake\ORM\Table$side - Возможная таблица с владением
Возвращает
booleanbool
linksource public
link( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options [] )
Связывает сущность источника с каждой из переданных целевых сущностей. При использовании этого метода все сущности в $targetEntities будут добавлены к свойству сущности источника, соответствующему этому объекту ассоциации.
Этот метод не проверяет уникальность ссылок. Изменения сохраняются в базе данных и в сущности источника.
Пример:
$user = $users->get(1); $allArticles = $articles->find('all')->execute(); $users->Articles->link($user, $allArticles);
$user->get('articles') будет содержать все статьи в $allArticles после связывания
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity - строка, относящаяся к стороне
sourceэтой ассоциации - массив
$targetEntities - список сущностей, относящихся к стороне
targetэтой ассоциации - массив
$optionsопционально [] - список опций, передаваемых во внутренний вызов
save
Возвращает
booleantrue при успехе, false в противном случае
replacesource public
replace( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options [] )
Заменяет существующие связи между сущностью источника и целью на те, которые переданы. Этот метод выполняет умную очистку, связи, которые уже сохранены и присутствуют в $targetEntities не будут удалены, новые связи будут созданы для переданных целевых сущностей, которые ещё не в базе данных, а остальные будут удалены.
Например, если у автора много статей, таких как 'статья1', 'статья 2' и 'статья 3', и вы передаёте в этот метод массив, содержащий сущности для статей 'статья 1' и 'статья 4', только ссылка на 'статья 1' сохранится в базе данных, ссылки на 'статья 2' и 'статья 3' будут удалены, а ссылка на 'статья 4' будет создана.
Существующие ссылки не удаляются и создаются заново, они либо остаются без изменений, либо обновляются.
Этот метод не проверяет уникальность ссылок.
При успехе переданный $sourceEntity будет содержать $targetEntities в качестве значения в соответствующем свойстве для этой ассоциации.
Дополнительные опции для сохранения новых ссылок могут быть переданы в третьем аргументе, см. Table::save() для получения информации об используемых опциях.
Пример:
$author->articles = [$article1, $article2, $article3, $article4]; $authors->save($author); $articles = [$article1, $article3]; $authors->association('articles')->replaceLinks($author, $articles);
$author->get('articles') будет содержать только [$article1, $article3] в конце
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity - сущность, сохранённая в таблице источника для этой ассоциации
- массив
$targetEntities - список сущностей из целевой таблицы для связывания
- массив
$optionsопционально [] - список опций для передачи во внутренние вызовы
save/deleteпри сохранении/обновлении новых ссылок или удалении существующих
Возвращает
booleanуспех
Выбрасывает
InvalidArgumentExceptionесли переданы не сохранённые сущности или какая-либо из них не имеет значения первичного ключа
saveAssociatedsource public
saveAssociated( Cake\Datasource\EntityInterface $entity , array $options [] )
Принимает сущность из таблицы источника и проверяет, есть ли поле, соответствующее имени свойства для этой ассоциации. Найденная сущность будет сохранена в целевой таблице для этой ассоциации, передавая предоставленные $options
Параметры
-
Cake\Datasource\EntityInterface$entity - сущность из таблицы источника
- массив
$optionsопционально [] - опции, передаваемые методу сохранения в целевой таблице
Возвращает
boolean|Cake\Datasource\EntityInterfacefalse, если $entity не удалось сохранить, в противном случае возвращает сохранённую сущность
Выбрасывает
InvalidArgumentExceptionкогда данные ассоциации не могут быть обработаны.
См.
Table::save()saveStrategysource public
saveStrategy( string|null $strategy null )
Устанавливает стратегию, которая должна использоваться для сохранения. Если вызвана без аргументов, вернёт текущую конфигурированную стратегию
Параметры
- строка|null
$strategyопционально null - имя стратегии, которая должна использоваться
Возвращает
stringстратегию, которая должна использоваться для сохранения
Выбрасывает
InvalidArgumentExceptionесли передано неверное имя стратегии
unlinksource public
unlink( Cake\Datasource\EntityInterface $sourceEntity , array $targetEntities , array $options [] )
Удаляет все связи между переданной сущностью-источником и каждой из переданных сущностей-целей. Этот метод предполагает, что все переданные объекты уже сохранены в базе данных и каждый из них содержит значение первичного ключа.
Параметры
В дополнение к стандартным параметрам, принимаемым Table::delete(), поддерживаются следующие ключи:
- cleanProperty: Удалять ли все объекты в
$targetEntities, которые
хранятся в $sourceEntity (по умолчанию: true)
По умолчанию этот метод удалит каждый из объектов сущности, хранящихся внутри сущности-источника.
Изменения сохраняются в базе данных и в сущности-источнике.
Пример:
$user = $users->get(1); $user->articles = [$article1, $article2, $article3, $article4]; $users->save($user, ['Associated' => ['Articles']]); $allArticles = [$article1, $article2, $article3]; $users->Articles->unlink($user, $allArticles);
$article->get('articles') будет содержать только [$article4] после удаления из базы данных
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity - сущность, сохраненная в таблице-источнике для этой связи
- массив
$targetEntities - список сущностей, сохраненных в таблице-цели для этой связи
- массив
$optionsнеобязательно [] - список параметров, передаваемых в вызов
delete
Исключения
InvalidArgumentExceptionесли переданы несохраненные сущности или если у какой-либо из них отсутствует значение первичного ключа
Методы, унаследованные от Cake\ORM\Association
__callsource public
__call( string $method , array $argument )
Делегирует вызовы методов таблице-цели.
Параметры
- строка
$method - имя вызываемого метода
- массив
$argument - Список аргументов, переданных функции
Возвращает
mixedсмешанный тип
Исключения
BadMethodCallException\BadMethodCallException
__constructsource public
__construct( string $alias , array $options [] )
Конструктор. Подклассы могут переопределять функцию _options, чтобы получить исходный список переданных параметров, если ожидают какие-либо другие специальные ключи
Параметры
- строка
$alias - Имя, данное связи
- массив
$optionsнеобязательно [] - Список свойств, которые необходимо установить для этого объекта
__getsource public
__get( string $property )
Делегирует получение свойств таблице-цели. Это удобно для получения связей этой связи
Параметры
- строка
$property - имя свойства
Возвращает
Cake\ORM\Association\Cake\ORM\Association
Исключения
RuntimeExceptionесли связи с таким именем не существует
__issetsource public
__isset( string $property )
Делегирует вызов isset таблице-цели. Это удобно для проверки наличия другой связи в таблице-цели с заданным именем
Параметры
- строка
$property - имя свойства
Возвращает
booleantrue, если свойство существует
_appendFieldssource protected
_appendFields( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Вспомогательная функция, используемая для условного добавления полей к выборке запроса из полей, найденных в другом объекте запроса.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будут добавлены поля
-
Cake\ORM\Query$surrogate - запрос, содержащий поля, которые необходимо скопировать
- массив
$options - параметры, передаваемые методу
attachTo
_appendNotMatchingsource protected
_appendNotMatching( Cake\Database\Query $query , array $options )
Условно добавляет условие к переданному запросу, которое будет находить записи, где нет совпадения с этой связью.
Параметры
-
Cake\Database\Query$query - Запрос для изменения
- массив
$options - Массив параметров, содержащий ключ
negateMatch.
_bindNewAssociationssource protected
_bindNewAssociations( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Применяет все присоединяемые связи к $query из содержаний, найденных в запросе $surrogate.
Копирует все содержащие связи из запроса $surrogate в переданный $query. Содержания изменяются таким образом, чтобы они соответствовали цепочке связей, из которой они произошли.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будут прикреплены связи
-
Cake\ORM\Query$surrogate - запрос, содержащий содержащиеся связи
- массив
$options - параметры, передаваемые методу
attachTo
_dispatchBeforeFindsource protected
_dispatchBeforeFind( Cake\ORM\Query $query )
Вызывает beforeFind в таблице-цели для запроса, к которому присоединяется эта связь
Параметры
-
Cake\ORM\Query$query - запрос, к которому присоединяется эта связь
_extractFindersource protected
_extractFinder( string|array $finderData )
Вспомогательный метод для вывода запрошенного findera и его параметров.
Возвращает выведенные параметры из findera $type.
Примеры:
Следующее вызовет findera 'translations' с значением findera в качестве его параметров: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);
Параметры
- строка|массив
$finderData - Имя findera или массив, содержащий имя в качестве ключа и параметры в качестве значения.
Возвращает
arrayмассив
_formatAssociationResultssource protected
_formatAssociationResults( Cake\ORM\Query $query , Cake\ORM\Query $surrogate , array $options )
Добавляет функцию форматирования к переданному $query , если запрос $surrogate объявляет другую функцию форматирования. Поскольку запрос $surrogate соответствует связанной целевой таблице, результирующая функция форматирования будет результатом применения заполнительных функций форматирования только к свойству, соответствующему такой таблице.
Параметры
-
Cake\ORM\Query$query - запрос, к которому будет применена функция форматирования
-
Cake\ORM\Query$surrogate - запрос, содержащий функции форматирования для связанной целевой таблицы.
- массив
$options - параметры, передаваемые методу
attachTo
_joinConditionsource protected
_joinCondition( array $options )
Возвращает одно или несколько условий, которые необходимо добавить к генерируемой части условия соединения для получения результатов в целевой таблице.
Параметры
- массив
$options - список параметров, переданных методу attachTo
Возвращает
arrayмассив
Исключения
RuntimeExceptionесли число столбцов в foreignKey не совпадает с числом столбцов в первичном ключе таблицы-источника
attachTosource public
attachTo( Cake\ORM\Query $query , array $options [] )
Изменяет объект запроса, чтобы включить данные связанной целевой таблицы в конечном результате.
Массив options принимает следующие ключи:
- includeFields: Включать ли поля целевой модели в результат
- foreignKey: Имя поля, используемого в качестве внешнего ключа. Если false, внешний ключ не используется
- conditions: массив с перечнем условий для фильтрации объединения, который будет объединен с любыми условиями, первоначально настроенными для этой ассоциации
- fields: список полей в целевой таблице, которые следует включить в результат
- type: Тип объединения, который следует использовать (например, INNER) для записей, найденных в этой ассоциации
- aliasPath: Строка с разделителем «.» представляющая путь имен ассоциаций, идущих от основной таблицы переданного запроса к этой ассоциации.
- propertyPath: Строка с разделителем «.» представляющая путь свойств ассоциаций, которые следует следовать от основного сущности переданного запроса к этой ассоциации
- joinType: Тип SQL-объединения, используемый в запросе.
- negateMatch: Добавит условие в переданный запрос для исключения совпадений с этой ассоциацией.
Параметры
-
Cake\ORM\Query$query - запрос, который должен быть изменен для включения данных целевой таблицы
- массив
$optionsнеобязательно [] - Дополнительные параметры или переопределения, которые следует учитывать
Возбуждает
RuntimeExceptionесли создатель запроса не возвращает объект запроса
bindingKeysource public
bindingKey( string|null $key null )
Устанавливает имя поля, представляющего поле связывания с целевой таблицей. Если не указано явно, используется первичный ключ таблицы-владельца.
Если параметры не переданы, возвращается текущее поле.
Параметры
- строка|null
$keyнеобязательно null - поле таблицы, которое используется для связи обеих таблиц
Возвращает
string|arrayстрока|массив
canBeJoinedsource public
canBeJoined( array $options [] )
Можно ли выразить эту ассоциацию напрямую в объединении запроса
Параметры
- массив
$optionsнеобязательно [] - настраиваемый ключ опций, который может изменить возвращаемое значение
Возвращает
booleanbool
cascadeCallbackssource public
cascadeCallbacks( boolean|null $cascadeCallbacks null )
Устанавливает, должны ли также срабатывать обратные вызовы при каскадном удалении. Если аргументы не переданы, возвращается текущее настроенное значение.
Параметры
- boolean|null
$cascadeCallbacksнеобязательно null - значение переключателя каскадных обратных вызовов
Возвращает
booleanbool
cascadeDeletesource абстрактный public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Обрабатывает каскадное удаление из связанной модели.
Каждый реализуемый класс должен обрабатывать каскадное удаление как требуется.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, которая инициировала каскадное удаление.
- массив
$optionsнеобязательно [] - Параметры исходного удаления.
Возвращает
booleanУспех
conditionssource public
conditions( array|null $conditions null )
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации. Если параметры не переданы, возвращается текущий список.
Параметры
- массив|null
$conditionsнеобязательно null - список условий, которые будут использоваться
Возвращает
arrayмассив
См. также
\Cake\Database\Query::where() для примеров формата массиваdefaultRowValuesource public
defaultRowValue( array $row , boolean $joined )
Возвращает измененную строку после добавления свойства для этой ассоциации со значением по умолчанию в соответствии с тем, была ли ассоциация объединена или извлечена внешним образом.
Параметры
- массив
$row - строка для установки значения по умолчанию.
- boolean
$joined - Является ли строка результатом прямого объединения с этой ассоциацией
Возвращает
arrayмассив
deleteAllsource public
deleteAll( mixed $conditions )
Делегирует операцию удаления методу deleteAll целевой таблицы.
Параметры
- смешанный
$conditions - Условия, которые будут использоваться. Принимает всё, что может принять Query::where().
Возвращает
booleanУспех. Возвращает true, если затронуты одна или несколько строк.
См. также
Cake\ORM\Table::deleteAll()dependentsource public
dependent( boolean|null $dependent null )
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это используется в основном для указания того, что записи должны быть удалены, если запись-владелец в исходной таблице удаляется.
Если параметры не переданы, возвращается текущее значение.
Параметры
- boolean|null
$dependentнеобязательно null - Установить режим зависимости. Используйте null, чтобы прочитать текущее состояние.
Возвращает
booleanbool
eagerLoadersource абстрактный public
eagerLoader( array $options )
Загружает жадно список записей в целевой таблице, которые связаны с набором записей в исходной таблице. Записи источника могут быть указаны двумя способами: во-первых, передав объект запроса, настроенный для поиска в исходной таблице, а во-вторых, явно передав массив значений первичного ключа из исходной таблицы.
Требуемый способ передачи связанных записей источника контролируется «стратегией». При использовании стратегии подзапроса потребуется запрос к исходной таблице. При использовании стратегии выбора будет использоваться список первичных ключей.
Возвращает замыкание, которое должно выполняться для каждой записи, возвращаемой в определенном запросе. Эта вызываемая функция будет отвечать за внедрение полей, связанных с каждой конкретной переданной строкой.
Массив options принимает следующие ключи:
- query: Объект запроса, настроенный для поиска записей в исходной таблице
- keys: Список значений первичного ключа из исходной таблицы
- foreignKey: Имя поля, используемого для связи обеих таблиц
- conditions: Список условий, которые будут переданы методу query where()
- sort: Направление, в котором должны быть возвращены записи
- fields: Список полей для выбора из целевой таблицы
- contain: Список связанных таблиц для жадной загрузки связанных с целевой таблицей
- strategy: Имя стратегии для использования при поиске записей целевой таблицы
- nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки
Параметры
- массив
$options - Параметры для жадной загрузки.
Возвращает
Closure\Closure
findsource public
find( string|array $type null , array $options [] )
Делегирует операцию поиска методу find целевой таблицы и соответственно изменяет запрос на основе конфигурации этой ассоциации.
Параметры
- строка|массив
$typeнеобязательно null - тип запроса, если передаётся массив, он интерпретируется как параметр
$options - массив
$optionsнеобязательно [] - Параметры для поиска.
Возвращает
Cake\ORM\Query\Cake\ORM\Query
См. также
Cake\ORM\Table::find()findersource public
finder( string|null $finder null )
Устанавливает настроенный поисковик по умолчанию для извлечения строк из целевой таблицы. Если параметры не переданы, возвращается текущее имя поисковика.
Параметры
- строка|null
$finderнеобязательно null - имя поисковика для использования
Возвращает
stringстрока
foreignKeysource public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ для целевой таблицы. Если параметры не переданы, возвращается текущее поле.
Параметры
- string|null
$keyнеобязательно null - ключ, используемый для связи обеих таблиц
Возвращает
string|arraystring|array
joinTypesource public
joinType( string $type null )
Устанавливает тип соединения, который будет использоваться при добавлении ассоциации в запрос. Если аргументы не переданы, возвращается текущий настроенный тип.
Параметры
- string
$typeнеобязательно null - тип соединения (например, INNER)
Возвращает
stringstring
namesource public
name( string|null $name null )
Устанавливает имя для этой ассоциации. Если аргумент не передан, возвращается текущее настроенное имя.
Параметры
- string|null
$nameнеобязательно null - Назначаемое имя
Возвращает
stringstring
propertysource public
property( string|null $name null )
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы. Если аргументы не переданы, возвращается текущий настроенный тип.
Параметры
- string|null
$nameнеобязательно null - Имя свойства ассоциации. Используйте null для считывания текущего значения.
Возвращает
stringstring
sourcesource public
source( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для исходной стороны ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который должен быть назначен как исходная сторона
Возвращает
Cake\ORM\Table\Cake\ORM\Table
strategysource public
strategy( string|null $name null )
Устанавливает имя стратегии, используемой для получения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, но по умолчанию стратегию, что делает любые изменения в этом параметре недействительными. Если аргументы не переданы, возвращается текущая настроенная стратегия.
Параметры
- string|null
$nameнеобязательно null - Тип стратегии. Используйте null для чтения текущего значения.
Возвращает
stringstring
Исключения
InvalidArgumentExceptionКогда предоставлена неверная стратегия.
targetsource public
target( Cake\ORM\Table $table null )
Устанавливает экземпляр таблицы для целевой стороны ассоциации. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы.
Параметры
-
Cake\ORM\Table$tableнеобязательно null - экземпляр, который должен быть назначен как целевая сторона
Возвращает
Cake\ORM\Table\Cake\ORM\Table
transformRowsource public
transformRow( array $row , string $nestKey , boolean $joined )
Правильно вкладывает значения результата строки, связанные с результатами, в правильные ключи массива внутри исходных результатов.
Параметры
- array
$row - Строка для преобразования
- string
$nestKey - Ключ массива, под которым должны быть найдены результаты этой ассоциации
- boolean
$joined - Является ли строка результатом прямого соединения с этой ассоциацией
Возвращает
arrayarray
updateAllsource public
updateAll( array $fields , mixed $conditions )
Делегирует операцию обновления методу updateAll целевой таблицы
Параметры
- array
$fields - Хеш поля => новое значение.
- mixed
$conditions - Условие, принимающее все, что может принять Query::where().
Возвращает
booleanУспех Возвращает true, если одна или несколько строк затронуты.
См.
Cake\ORM\Table::updateAll()Методы, используемые из Cake\ORM\Association\DependentDeleteTrait
cascadeDeletesource public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options [] )
Каскадное удаление для удаления зависимых записей.
Этот метод ничего не делает, если ассоциация не является зависимой.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, которая инициировала каскадное удаление.
- array
$optionsнеобязательно [] - Параметры исходного удаления.
Возвращает
booleanУспех.
Методы, используемые из Cake\ORM\Association\ExternalAssociationTrait
_buildResultMapsource protected
_buildResultMap( mixed $fetchQuery , mixed $options )
_defaultOptionssource protected
_defaultOptions( )
Возвращает параметры по умолчанию для eagerLoader
Возвращает
arrayarray
_externalOptionssource protected
_externalOptions( array $opts )
Обрабатывает дополнительные параметры, переданные в конструкторе.
Параметры
- array
$opts - исходный список параметров, переданных в конструкторе
canBeJoinedsource public
canBeJoined( array $options [] )
Можно ли выразить эту ассоциацию непосредственно в соединении запроса
Параметры
- array
$optionsнеобязательно [] - ключ пользовательских параметров, которые могут изменить возвращаемое значение
Возвращает
booleanесли ключ «сопоставление» в $option равен true, то эта функция вернет true, в противном случае false
Переопределяет
Cake\ORM\Association::canBeJoined() defaultRowValuesource public
defaultRowValue( mixed $row , mixed $joined )
Переопределяет
Cake\ORM\Association::defaultRowValue() foreignKeysource public
foreignKey( string|null $key null )
Устанавливает имя поля, представляющего внешний ключ к исходной таблице. Если параметры не переданы, возвращается текущее поле.
Параметры
- string|null
$keyнеобязательно null - ключ, используемый для связи обеих таблиц
Возвращает
stringstring
Переопределяет
Cake\ORM\Association::foreignKey() sortsource public
sort( mixed $sort null )
Устанавливает порядок сортировки, в котором должны возвращаться целевые записи. Если аргументы не переданы, возвращается текущее значение конфигурации
Параметры
- mixed
$sortнеобязательно null - Запрос find() совместимое условие сортировки
Возвращает
mixedmixed
Методы, используемые из Cake\ORM\Association\SelectableAssociationTrait
_addFilteringConditionsource protected
_addFilteringCondition( Cake\ORM\Query $query , string|array $key , mixed $filter )
Добавляет любые условия, необходимые для загрузки соответствующего набора записей в запросе целевой таблицы, учитывая ключ фильтра и некоторые значения фильтра.
Параметры
-
Cake\ORM\Query$query - Запрос целевой таблицы
- string|array
$key - поля, которые должны использоваться для фильтрации
- mixed
$filter - значение, которое должно использоваться для сопоставления с $key
Возвращает
Cake\ORM\Query\Cake\ORM\Query
_addFilteringJoinsource 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\Cake\ORM\Query
_buildQuerysource protected
_buildQuery( array $options )
Вспомогательная функция для создания нового объекта Query для возврата всех записей в целевой таблице, связанных с теми, которые указаны в $options из исходной таблицы
Параметры
- array
$options - опции, принимаемые eagerLoader()
Возвращает
Cake\ORM\Query\Cake\ORM\Query
Возможные исключения
InvalidArgumentExceptionПри необходимости ключа для ассоциаций, но он не выбран.
_buildSubquerysource protected
_buildSubquery( Cake\ORM\Query $query )
Создаёт запрос, который будет использоваться в качестве условия для фильтрации записей в целевой таблице. Он создаётся путём клонирования исходного запроса, который использовался для загрузки записей в исходной таблице.
Параметры
-
Cake\ORM\Query$query - исходный запрос, используемый для загрузки записей источника
Возвращает
Cake\ORM\Query\Cake\ORM\Query
_createTupleConditionsource 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\Cake\Database\Expression\TupleComparison
_multiKeysInjectorsource protected
_multiKeysInjector( array $resultMap , array $sourceKeys , string $nestKey )
Возвращает вызываемый объект, который будет использоваться для каждой строки в наборе результатов запроса для вставки загруженных жадно строк, когда сопоставление должно выполняться с несколькими внешними ключами
Параметры
- array
$resultMap - Массив с ключами, содержащий целевую таблицу
- array
$sourceKeys - Массив с алиасами ключей для сопоставления
- string
$nestKey - Ключ, под которым результаты должны быть вложены
Возвращает
Closure\Closure
_resultInjectorsource protected
_resultInjector( Cake\ORM\Query $fetchQuery , array $resultMap , array $options )
Возвращает вызываемый объект, который будет использоваться для каждой строки в наборе результатов запроса для вставки загруженных жадно строк
Параметры
-
Cake\ORM\Query$fetchQuery - Запрос, используемый для извлечения результатов
- array
$resultMap - массив с внешним ключом в качестве ключей и соответствующими результатами целевой таблицы в качестве значения.
- array
$options - Опции, переданные методу eagerLoader
Возвращает
Closure\Closure
_subqueryFieldssource protected
_subqueryFields( Cake\ORM\Query $query )
Вычисляет поля, которые должны участвовать в подзапросе.
Обычно это включает столбцы ключей связей. Если есть ORDER BY, эти столбцы также включаются, так как эти столбцы могут быть вычисляемыми или константами, которые должны быть присутствовать для обеспечения загрузки корректных данных ассоциации.
Параметры
-
Cake\ORM\Query$query - Запрос для получения полей.
Возвращает
arrayСписок полей для подзапроса.
eagerLoadersource public
eagerLoader( array $options )
requiresKeyssource public
requiresKeys( array $options [] )
Возвращает true, если процесс жадной загрузки потребует набор связывающих ключей таблицы владельца для использования их в качестве фильтра в запросе поиска.
Параметры
- array
$optionsнеобязательно [] - Опции, содержащие используемую стратегию.
Возвращает
booleantrue, если список ключей будет необходим
Методы, используемые из Cake\Core\ConventionsTrait
_camelizesource protected
_camelize( string $name )
Создаёт пришлизованную версию $name
Параметры
- string
$name - имя
Возвращает
stringПришлизованное имя
_entityNamesource protected
_entityName( string $name )
Создаёт соответствующее имя сущности (единственное число) для указанного имени
Параметры
- string
$name - Имя
Возвращает
stringПришлизованное и множественное имя модели
_fixtureNamesource protected
_fixtureName( string $name )
Создаёт имя фикстуры
Параметры
- string
$name - Имя класса модели
Возвращает
stringЕдинственное число ключа модели
_modelKeysource protected
_modelKey( string $name )
Создаёт соответствующий нижнестрочный ключ модели для ассоциаций
Если вход содержит точку, предполагается, что правая часть является реальным именем таблицы.
Параметры
- string
$name - Имя класса модели
Возвращает
stringЕдинственное число ключа модели
_modelNameFromKeysource protected
_modelNameFromKey( string $key )
Создаёт правильное имя модели из внешнего ключа
Параметры
- string
$key - Внешний ключ
Возвращает
stringИмя модели
_pluginNamespacesource protected
_pluginNamespace( string $pluginName )
Возвращает имя пространства имён плагина
Параметры
- строка
$pluginName - Имя плагина
Возвращает
stringПространство имён плагина
_pluginPathsource protected
_pluginPath( string $pluginName )
Находит правильный путь к плагину. Просматривает $pluginPaths для нужного плагина.
Параметры
- строка
$pluginName - Имя плагина, например DebugKit
Возвращает
stringПуть к плагину.
_pluralHumanNamesource protected
_pluralHumanName( string $name )
Создаёт множественное число человекочитаемого имени, используемого в представлениях
Параметры
- строка
$name - Имя контроллера
Возвращает
stringМножественное число человекочитаемого имени
_singularHumanNamesource protected
_singularHumanName( string $name )
Создаёт единственное число человекочитаемого имени, используемого в представлениях
Параметры
- строка
$name - Имя контроллера
Возвращает
stringЕдинственное число человекочитаемого имени
_singularNamesource protected
_singularName( string $name )
Создаёт единственное число имени для использования в представлениях.
Параметры
- строка
$name - Используемое имя
Возвращает
stringИмя переменной
_variableNamesource protected
_variableName( string $name )
Создаёт множественное число имени переменной для представлений
Параметры
- строка
$name - Используемое имя
Возвращает
stringМножественное число имени для представлений
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
tableLocatorsource public
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator null )
Устанавливает локатор таблицы. Если параметры не переданы, возвращает текущий используемый локатор.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательно null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterface\Cake\ORM\Locator\LocatorInterface
Сводка констант
string | SAVE_APPEND Стратегия сохранения, которая будет добавлять только в набор установленных ссылок | 'append' |
string | SAVE_REPLACE Стратегия сохранения, которая заменит ссылки предоставленным набором | 'replace' |
Наследованные константы из Cake\ORM\Association
MANY_TO_MANY, MANY_TO_ONE, ONE_TO_MANY, ONE_TO_ONE, STRATEGY_JOIN, STRATEGY_SELECT, STRATEGY_SUBQUERY |
Сводка свойств
Наследованные свойства из Cake\ORM\Association
$_bindingKeysource
protected строка|массив
Имя поля в таблице владельца, используемое для сопоставления с foreignKey
$_cascadeCallbackssource
protected строка
Включать или нет вызов обратных функций при каскадных удалениях.
false $_conditionssource
protected массив
Список условий, которые всегда должны включаться при извлечении записей из целевого ассоциативного объекта
[]
$_dependentsource
protected булево
Зависит ли запись в целевой таблице от записи в исходной таблице, часто используется для указания того, что записи должны быть удалены, если запись владельца в исходной таблице удаляется.
false $_findersource
protected строка
Имя нахождения по умолчанию для извлечения строк из целевой таблицы
'all' $_foreignKeysource
protected строка|массив
Имя поля, представляющего внешний ключ к таблице для загрузки
$_namesource
protected строка
Название ассоциации, обычно представляет собой псевдоним, назначенный целевой связанной таблице
$_propertyNamesource
protected строка
Имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Свойства, используемые из Cake\ORM\Locator\LocatorAwareTrait
Свойства, используемые из Cake\ORM\Association\ExternalAssociationTrait
© 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.HasMany.html