Класс BelongsToMany
Представляет отношение M - N, где существует соединительная - или join - таблица, которая содержит поля связи между исходной и целевой таблицей.
Примером ассоциации BelongsToMany может служить связь «Статья принадлежит ко многим тегам».
Константы
-
stringMANY_TO_MANY'manyToMany'
Тип ассоциации для связей многие-ко-многим.
-
stringMANY_TO_ONE'manyToOne'
Тип ассоциации для связей многие-к-одному.
-
stringONE_TO_MANY'oneToMany'
Тип ассоциации для связей один-ко-многим.
-
stringONE_TO_ONE'oneToOne'
Тип ассоциации для связей один-к-одному.
-
stringSAVE_APPEND'append'
Стратегия сохранения, которая будет только добавлять к набору ссылок
-
stringSAVE_REPLACE'replace'
Стратегия сохранения, которая будет заменять ссылки на предоставленный набор
-
stringSTRATEGY_JOIN'join'
Имя стратегии для использования соединений при извлечении связанных записей
-
stringSTRATEGY_SELECT'select'
Имя стратегии для использования select при извлечении связанных записей
-
stringSTRATEGY_SUBQUERY'subquery'
Имя стратегии для использования подзапроса при извлечении связанных записей
Краткое описание полей
- $_bindingKey protected
array<string>|string|nullИмя поля в таблице владельца, используемое для сопоставления с foreignKey
- $_cascadeCallbacks protected
boolСледует ли также запускать коллбэки при каскадном удалении.
- $_className protected
stringИмя класса объекта целевой таблицы
- $_conditions protected
Closure|arrayСписок условий, которые всегда должны включаться при извлечении записей из целевой ассоциации
- $_dependent protected
boolСледует ли удалять записи в объединённой таблице, когда удаляется запись в исходной таблице.
- $_finder protected
array|stringИмя метода поиска по умолчанию, используемое для извлечения строк из целевой таблицы. С массивом значений допускаются имя метода поиска и параметры по умолчанию.
- $_foreignKey protected
array<string>|stringИмя поля, представляющего внешний ключ к загружаемой таблице
- $_joinType protected
stringТип соединения, используемый при добавлении ассоциации к запросу
- $_junctionAssociationName protected
stringИмя ассоциации hasMany из целевой таблицы в соединительную таблицу
- $_junctionConditions protected
array|nullОтфильтрованные условия, ссылающиеся на соединительную таблицу.
- $_junctionProperty protected
stringИмя свойства, которое должно быть установлено, содержащее данные из соединительной таблицы после того, как запись из целевой таблицы будет загружена
- $_junctionTable protected
Cake\ORM\TableЭкземпляр соединительной таблицы
- $_junctionTableName protected
stringИмя соединительной таблицы
- $_name protected
stringИмя, данное ассоциации, обычно представляет псевдоним, назначенный целевой связанной таблице
- $_propertyName protected
stringИмя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
- $_saveStrategy protected
stringСтратегия сохранения, используемая этой ассоциацией
- $_sort protected
mixedПорядок, в котором должны возвращаться записи целевой таблицы
- $_sourceTable protected
Cake\ORM\TableЭкземпляр исходной таблицы
- $_strategy protected
stringИмя стратегии, используемой для извлечения связанных записей.
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локатора таблицы
- $_targetConditions protected
array|nullОтфильтрованные условия, ссылающиеся на целевую таблицу.
- $_targetForeignKey protected
array<string>|string|nullИмя поля, представляющего внешний ключ к целевой таблице
- $_targetTable protected
Cake\ORM\TableЭкземпляр целевой таблицы
- $_through protected
Cake\ORM\Table|stringЭкземпляр таблицы для соединения.
- $_validStrategies protected
array<string>Допустимые стратегии для этого типа ассоциации
- $defaultTable protected
string|nullПсевдоним таблицы по умолчанию для этого объекта.
Краткое описание методов
-
__call() public
Перенаправляет вызовы методов на целевую таблицу.
-
__construct() public
Конструктор. Подклассы могут переопределить функцию _options, чтобы получить исходный список переданных параметров, если ожидается какой-либо другой специальный ключ
-
__get() public
Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации
-
__isset() public
Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, есть ли у целевой таблицы другая ассоциация с переданным именем
-
_appendFields() protected
Вспомогательная функция, используемая для условного добавления полей к предложению select запроса из полей, найденных в другом объекте запроса.
-
_appendJunctionJoin() protected
Добавляет соединение с соединительной таблицей.
-
_appendNotMatching() protected
Условно добавляет условие в переданный запрос Query, который позволит ему находить записи, где нет соответствия с этой ассоциацией.
-
_bindNewAssociations() protected
Применяет все присоединяемые ассоциации к
$queryиз содержащихся в запросе$surrogate. -
_camelize() protected
Создает версию $name в стиле camelCase
-
_checkPersistenceStatus() protected
Выбрасывает исключение, если любой из переданных объектов не сохранен.
-
_collectJointEntities() protected
Возвращает список объединенных сущностей, которые существуют между исходной сущностью и каждой из переданных целевых сущностей
-
_diffLinks() protected
Вспомогательный метод, используемый для удаления разницы между ссылками, переданными в
$existingи$jointEntities. Этот метод вернет значения из$targetEntities, которые не были удалены при вычислении разницы. -
_dispatchBeforeFind() protected
Вызывает beforeFind в целевой таблице для запроса, к которому прикрепляется эта ассоциация
-
_entityName() protected
Создает правильное имя сущности (единственное число) для указанного имени
-
_extractFinder() protected
Вспомогательный метод для вывода запрошенного findera и его параметров.
-
_fixtureName() protected
Создает имя фикстуры
-
_formatAssociationResults() protected
Добавляет функцию форматирования к переданному
$query, если запрос$surrogateобъявляет какой-либо другой форматтер. Поскольку запрос$surrogateсоответствует связанной целевой таблице, результирующий форматтер будет результатом применения суррогатных форматтеров только к свойству, соответствующему такой таблице. -
_generateJunctionAssociations() protected
Генерирует ассоциации в соединительной таблице по мере необходимости
-
_generateSourceAssociations() protected
Генерирует дополнительные ассоциации исходной таблицы по мере необходимости.
-
_generateTargetAssociations() protected
Генерирует взаимные ассоциации по мере необходимости.
-
_joinCondition() protected
Возвращает false, так как условия соединения определены в соединительной таблице
-
_junctionAssociationName() protected
Возвращает имя ассоциации из целевой таблицы в соединительную таблицу, это имя используется для генерации псевдонима в запросе и для последующего получения результатов.
-
_junctionTableName() protected
Устанавливает имя соединительной таблицы. Если аргументы не переданы, возвращается текущее настроенное имя. Если не найдено, будет сгенерировано имя по умолчанию на основе связанных таблиц.
-
_modelKey() protected
Создает правильный подчеркнутый ключ модели для ассоциаций
-
_modelNameFromKey() protected
Создает правильное имя модели из внешнего ключа
-
_options() protected
Разбирает дополнительные параметры, переданные в конструкторе.
-
_pluginNamespace() protected
Возвращает пространство имен плагина
-
_pluginPath() protected
Находит правильный путь для плагина. Сканирует $pluginPaths для нужного плагина.
-
_pluralHumanName() protected
Создает множественное человеческое имя, используемое в представлениях
-
_propertyName() protected
Возвращает имя свойства по умолчанию на основе имени ассоциации.
-
_saveLinks() protected
Создает связи между исходной сущностью и каждой из переданных целевых сущностей
-
_saveTarget() protected
Сохраняет каждую из сущностей в целевую таблицу и создает связи между родительской сущностью и каждой из сохраненных целевых сущностей.
-
_singularHumanName() protected
Создает единственное человеческое имя, используемое в представлениях
-
_singularName() protected
Создает единственное имя для использования в представлениях.
-
_variableName() protected
Создает множественное имя переменной для представлений
-
attachTo() public
Изменяет объект Query, чтобы включить данные связанной целевой таблицы в окончательный результат
-
canBeJoined() public
Можно ли эту ассоциацию выразить непосредственно в соединении запроса
-
cascadeDelete() public
Очищает данные в соединительной таблице для данной сущности.
-
defaultRowValue() public
Возвращает измененную строку после добавления свойства для этой ассоциации со значением пустого значения по умолчанию в зависимости от того, была ли ассоциация объединена или получена внешним образом.
-
deleteAll() public
Перенаправляет операцию удаления в метод deleteAll целевой таблицы
-
eagerLoader() public
Загружает список записей в целевой таблице, которые связаны с другим набором записей в исходной таблице. Исходные записи могут быть указаны двумя способами: первый — путем передачи объекта Query, настроенного для поиска в исходной таблице, а второй — путем явного указания массива значений первичных ключей из исходной таблицы.
-
exists() public
Передает операцию методу exists целевой таблицы после добавления условий по умолчанию для этой связи
-
fetchTable() public
Вспомогательный метод для получения экземпляра таблицы.
-
find() public
Передает операцию поиска методу find целевой таблицы и изменяет запрос в соответствии с конфигурацией этой связи.
-
getBindingKey() public
Возвращает имя поля, представляющего поле связи с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
-
getCascadeCallbacks() public
Возвращает, должны ли каскадные удаления также вызывать обратные вызовы.
-
getClassName() public
Возвращает имя класса объекта целевой таблицы.
-
getConditions() public
Возвращает список условий, которые всегда должны включаться при извлечении записей из целевой связи.
-
getDependent() public
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
-
getFinder() public
Возвращает средство поиска по умолчанию, используемое для извлечения строк из целевой таблицы.
-
getForeignKey() public
Возвращает имя поля, представляющего внешний ключ к исходной таблице.
-
getJoinType() public
Возвращает тип соединения, который будет использоваться при добавлении связи к запросу.
-
getName() public
Возвращает имя для этой связи, обычно псевдоним, назначенный связанной целевой таблице
-
getProperty() public
Возвращает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
-
getSaveStrategy() public
Возвращает стратегию, которая должна использоваться для сохранения.
-
getSort() public
Возвращает порядок сортировки, в котором должны возвращаться целевые записи.
-
getSource() public
Возвращает экземпляр таблицы для исходной стороны связи.
-
getStrategy() public
Возвращает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы связей могут не реализовывать, а только стратегию по умолчанию, делая любые изменения этой настройки недействительными.
-
getTableLocator() public
Возвращает локатор таблицы.
-
getTarget() public
Возвращает экземпляр таблицы для целевой стороны связи.
-
getTargetForeignKey() public
Возвращает имя поля, представляющего внешний ключ к целевой таблице.
-
getThrough() public
Возвращает текущую соединительную таблицу, либо имя экземпляра Table, либо сам экземпляр.
-
isOwningSide() public
Возвращает логическое значение true, так как обе таблицы «владеют» строками с другой стороны связи через соединительную таблицу.
-
junction() public
Устанавливает экземпляр таблицы для соединения. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы
-
junctionConditions() protected
Возвращает отфильтрованные условия, которые специально ссылаются на соединительную таблицу.
-
link() public
Связывает сущность источника с каждой из целевых сущностей, создавая ссылки в соединительной таблице. Предполагается, что как сущность источника, так и каждая из целевых сущностей уже сохранены, если они помечены как новые или их состояние неизвестно, то будет выброшено исключение.
-
replaceLinks() public
Заменяет существующие связи между сущностью источника и целью на переданные. Этот метод выполняет интеллектуальную очистку, связи, которые уже сохранены и присутствуют в
$targetEntities, не будут удалены, новые связи будут созданы для переданных целевых сущностей, которых еще нет в базе данных, а остальные будут удалены. -
requiresKeys() public
Возвращает true, если процесс нетерпеливой загрузки потребует набор ключей связи владеющей таблицы, чтобы использовать их в качестве фильтра в запросе поиска.
-
saveAssociated() public
Берет сущность из исходной таблицы и проверяет, есть ли поле, соответствующее имени свойства для этой связи. Найденная сущность будет сохранена в целевой таблице для этой связи путем передачи предоставленных
$options -
setBindingKey() public
Устанавливает имя поля, представляющего поле связи с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
-
setCascadeCallbacks() public
Устанавливает, должны ли каскадные удаления также вызывать обратные вызовы.
-
setClassName() public
Устанавливает имя класса объекта целевой таблицы.
-
setConditions() public
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой связи.
-
setDependent() public
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
-
setFinder() public
Устанавливает средство поиска по умолчанию, используемое для извлечения строк из целевой таблицы.
-
setForeignKey() public
Устанавливает имя поля, представляющего внешний ключ к целевой таблице.
-
setJoinType() public
Устанавливает тип соединения, который будет использоваться при добавлении связи к запросу.
-
setName() public deprecated
Устанавливает имя для этой связи, обычно псевдоним, назначенный связанной целевой таблице
-
setProperty() public
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
-
setSaveStrategy() public
Задает стратегию, которая должна использоваться для сохранения.
-
setSort() public
Задает порядок сортировки, в котором должны возвращаться целевые записи.
-
setSource() public
Задает экземпляр таблицы для исходной стороны ассоциации.
-
setStrategy() public
Задает имя стратегии, которая будет использоваться для выборки связанных записей. Имейте в виду, что некоторые типы ассоциаций могут реализовывать только стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
-
setTableLocator() public
Задает локатор таблицы.
-
setTarget() public
Задает экземпляр таблицы для целевой стороны ассоциации.
-
setTargetForeignKey() public
Задает имя поля, представляющего внешний ключ к целевой таблице.
-
setThrough() public
Задает текущую соединительную таблицу, либо имя экземпляра Table, либо сам экземпляр.
-
targetConditions() protected
Возвращает отфильтрованные условия, которые ссылаются на целевую таблицу.
-
transformRow() public
Правильно вкладывает значения строки результата, связанные со значениями, в правильные ключи массива внутри результатов источника.
-
type() public
Получить тип связи.
-
unlink() public
Удаляет все связи между переданным исходным объектом и каждым из предоставленных целевых объектов. Этот метод предполагает, что все переданные объекты уже сохранены в базе данных и что каждый из них содержит значение первичного ключа.
-
updateAll() public
Перенаправляет операцию обновления в метод updateAll целевой таблицы.
Подробное описание методов
__call() public
__call(string $method, array $argument): mixed
Перенаправляет вызовы методов на целевую таблицу.
Параметры
-
string$method имя вызываемого метода
-
array$argument Список аргументов, переданных в функцию
Возвращает
mixedИсключения
BadMethodCallException__construct() public
__construct(string $alias, array<string, mixed> $options = [])
Конструктор. Подклассы могут переопределить функцию _options, чтобы получить исходный список переданных параметров, если ожидается какой-либо другой специальный ключ
Параметры
-
string$alias Имя, данное ассоциации
-
array<string, mixed>$options optional Список свойств, которые должны быть установлены для этого объекта
__get() public
__get(string $property): Cake\ORM\Association
Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации
Параметры
-
string$property имя свойства
Возвращает
Cake\ORM\AssociationИсключения
RuntimeExceptionif no association with such name exists
__isset() public
__isset(string $property): bool
Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, имеет ли целевая таблица другую ассоциацию с переданным именем
Параметры
-
string$property имя свойства
Возвращает
bool_appendFields() protected
_appendFields(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Вспомогательная функция, используемая для условного добавления полей в предложение select запроса из полей, найденных в другом объекте запроса.
Параметры
-
Cake\ORM\Query$query запрос, к которому будут добавлены поля
-
Cake\ORM\Query$surrogate запрос, содержащий поля, которые необходимо скопировать
-
array<string, mixed>$options параметры, переданные методу
attachTo
Возвращает
void_appendJunctionJoin() protected
_appendJunctionJoin(Cake\ORM\Query $query, array|null $conditions = null): Cake\ORM\Query
Добавить соединение с соединительной таблицей.
Параметры
-
Cake\ORM\Query$query Запрос для добавления.
-
array|null$conditions optional Условия запроса для использования.
Возвращает
Cake\ORM\Query_appendNotMatching() protected
_appendNotMatching(Cake\ORM\Query $query, array<string, mixed> $options): void
Условно добавляет условие в переданный запрос Query, который заставит его находить записи, где нет совпадения с этой ассоциацией.
Параметры
-
Cake\ORM\Query$query -
array<string, mixed>$options
Возвращает
void_bindNewAssociations() protected
_bindNewAssociations(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Применяет все присоединяемые ассоциации к $query из включений, найденных в запросе $surrogate.
Копирует все содержащиеся ассоциации из запроса $surrogate в переданный $query. Включения изменяются так, чтобы они соответствовали цепочке ассоциаций, из которой они произошли.
Параметры
-
Cake\ORM\Query$query запрос, к которому будут прикреплены ассоциации
-
Cake\ORM\Query$surrogate запрос, содержащий включения, которые необходимо прикрепить
-
array<string, mixed>$options параметры, переданные методу
attachTo
Возвращает
void_camelize() protected
_camelize(string $name): string
Создает версию $name в стиле camelCase
Параметры
-
string$name имя
Возвращает
string_checkPersistenceStatus() protected
_checkPersistenceStatus(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities): bool
Выбрасывает исключение, если какой-либо из переданных объектов не сохранен.
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity строка, принадлежащая стороне
sourceэтой ассоциации-
arrayCake\Datasource\EntityInterface>$targetEntities список объектов, принадлежащих стороне
targetэтой ассоциации
Возвращает
boolИсключения
InvalidArgumentException_collectJointEntities() protected
_collectJointEntities(Cake\Datasource\EntityInterface $sourceEntity, array $targetEntities): arrayCake\Datasource\EntityInterface>
Возвращает список объединенных сущностей, которые существуют между исходной сущностью и каждой из переданных целевых сущностей
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity Строка, принадлежащая исходной стороне этой ассоциации.
-
array$targetEntities Строки, принадлежащие целевой стороне этой ассоциации.
Возвращает
arrayCake\Datasource\EntityInterface>Исключения
InvalidArgumentExceptionif any of the entities is lacking a primary key value
_diffLinks() protected
_diffLinks(Cake\ORM\Query $existing, arrayCake\Datasource\EntityInterface> $jointEntities, array $targetEntities, array<string, mixed> $options = []): array|false
Вспомогательный метод, используемый для удаления разницы между ссылками, переданными в $existing и $jointEntities. Этот метод вернет значения из $targetEntities, которые не были удалены при вычислении разницы.
Параметры
-
Cake\ORM\Query$existing запрос для получения существующих ссылок
-
arrayCake\Datasource\EntityInterface>$jointEntities сущности ссылок, которые должны быть сохранены
-
array$targetEntities сущности в целевой таблице, которые связаны с
$jointEntities-
array<string, mixed>$options optional список параметров, принимаемых
Table::delete()
Возвращает
array|false_dispatchBeforeFind() protected
_dispatchBeforeFind(Cake\ORM\Query $query): void
Вызывает beforeFind в целевой таблице для запроса, к которому присоединяется эта ассоциация
Параметры
-
Cake\ORM\Query$query запрос, к которому эта ассоциация присоединяется
Возвращает
void_entityName() protected
_entityName(string $name): string
Создает правильное имя сущности (единственное число) для указанного имени
Параметры
-
string$name Имя
Возвращает
string_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_fixtureName() protected
_fixtureName(string $name): string
Создает имя фикстуры
Параметры
-
string$name Имя класса модели
Возвращает
string_formatAssociationResults() protected
_formatAssociationResults(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Добавляет функцию форматирования к переданному $query, если запрос $surrogate объявляет какой-либо другой форматтер. Поскольку запрос $surrogate соответствует связанной целевой таблице, результирующий форматтер будет результатом применения суррогатных форматтеров только к свойству, соответствующему такой таблице.
Parameters
-
Cake\ORM\Query$query запрос, к которому будет применена функция форматирования
-
Cake\ORM\Query$surrogate запрос, содержащий форматтеры для связанной целевой таблицы.
-
array<string, mixed>$options параметры, переданные методу
attachTo
Returns
void_generateJunctionAssociations() protected
_generateJunctionAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source, Cake\ORM\Table $target): void
Генерирует ассоциации в соединительной таблице по мере необходимости
Генерирует следующие ассоциации:
- соединительная таблица принадлежит источнику, например, ArticlesTags принадлежит Tags
- соединительная таблица принадлежит цели, например, ArticlesTags принадлежит Articles
Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.
Parameters
-
Cake\ORM\Table$junction Соединительная таблица.
-
Cake\ORM\Table$source Исходная таблица.
-
Cake\ORM\Table$target Целевая таблица.
Returns
voidThrows
InvalidArgumentExceptionЕсли ожидаемые ассоциации несовместимы с существующими ассоциациями.
_generateSourceAssociations() protected
_generateSourceAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source): void
Генерирует дополнительные ассоциации исходной таблицы по мере необходимости.
Генерирует следующие ассоциации:
- источник имеет много соединений, например, Tags имеет много ArticlesTags
Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.
Parameters
-
Cake\ORM\Table$junction Соединительная таблица.
-
Cake\ORM\Table$source Исходная таблица.
Returns
void_generateTargetAssociations() protected
_generateTargetAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source, Cake\ORM\Table $target): void
Генерирует взаимные ассоциации по мере необходимости.
Генерирует следующие ассоциации:
- цель имеет много соединений, например, Articles имеет много ArticlesTags
- цель принадлежит ко многим источникам, например, Articles принадлежит ко многим Tags.
Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.
Parameters
-
Cake\ORM\Table$junction Соединительная таблица.
-
Cake\ORM\Table$source Исходная таблица.
-
Cake\ORM\Table$target Целевая таблица.
Returns
void_joinCondition() protected
_joinCondition(array<string, mixed> $options): array
Возвращает false, так как условия соединения определены в соединительной таблице
Parameters
-
array<string, mixed>$options список параметров, переданных методу attachTo
Returns
array_junctionAssociationName() protected
_junctionAssociationName(): string
Возвращает имя ассоциации из целевой таблицы в соединительную таблицу, это имя используется для генерации псевдонима в запросе и для последующего получения результатов.
Returns
string_junctionTableName() protected
_junctionTableName(string|null $name = null): string
Устанавливает имя соединительной таблицы. Если аргументы не переданы, возвращается текущее настроенное имя. Если имя не найдено, будет сгенерировано имя по умолчанию на основе связанных таблиц.
Parameters
-
string|null$name optional Имя соединительной таблицы.
Returns
string_modelKey() protected
_modelKey(string $name): string
Создает правильный подчеркнутый ключ модели для ассоциаций
Если входные данные содержат точку, предполагается, что правая часть является реальным именем таблицы.
Parameters
-
string$name Имя класса модели
Returns
string_modelNameFromKey() protected
_modelNameFromKey(string $key): string
Создает правильное имя модели из внешнего ключа
Parameters
-
string$key Внешний ключ
Returns
string_options() protected
_options(array<string, mixed> $options): void
Разбирает дополнительные параметры, переданные в конструкторе.
Parameters
-
array<string, mixed>$options исходный список параметров, переданных в конструктор
Returns
void_pluginNamespace() protected
_pluginNamespace(string $pluginName): string
Возвращает пространство имен плагина
Parameters
-
string$pluginName Имя плагина
Returns
string_pluginPath() protected
_pluginPath(string $pluginName): string
Находит правильный путь для плагина. Сканирует $pluginPaths для нужного плагина.
Parameters
-
string$pluginName Имя нужного плагина, например, DebugKit
Returns
string_pluralHumanName() protected
_pluralHumanName(string $name): string
Создает множественное имя, используемое в представлениях
Parameters
-
string$name Имя контроллера
Returns
string_propertyName() protected
_propertyName(): string
Возвращает имя свойства по умолчанию на основе имени ассоциации.
Returns
string_saveLinks() protected
_saveLinks(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string, mixed> $options): bool
Создает связи между сущностью источника и каждой из переданных целевых сущностей
Parameters
-
Cake\Datasource\EntityInterface$sourceEntity сущность из исходной таблицы в этой ассоциации
-
arrayCake\Datasource\EntityInterface>$targetEntities список сущностей для связи с сущностью источника с использованием соединительной таблицы
-
array<string, mixed>$options список параметров, принимаемых
Table::save()
Returns
bool_saveTarget() protected
_saveTarget(Cake\Datasource\EntityInterface $parentEntity, array $entities, array<string, mixed> $options): Cake\Datasource\EntityInterface|false
Сохраняет каждую из сущностей в целевую таблицу и создает связи между родительской сущностью и каждой из сохраненных целевых сущностей.
Parameters
-
Cake\Datasource\EntityInterface$parentEntity родительская сущность, содержащая целевые сущности для сохранения.
-
array$entities список сущностей для сохранения в целевой таблице и для связи с родительской сущностью
-
array<string, mixed>$options список параметров, принимаемых
Table::save()
Returns
Cake\Datasource\EntityInterface|falseThrows
InvalidArgumentExceptionесли свойство, представляющее ассоциацию в родительской сущности, недоступно для обхода
_singularHumanName() protected
_singularHumanName(string $name): string
Создает единственное имя, используемое в представлениях
Parameters
-
string$name Имя контроллера
Returns
string_singularName() protected
_singularName(string $name): string
Создает единственное имя для использования в представлениях.
Parameters
-
string$name Имя для использования
Returns
string_variableName() protected
_variableName(string $name): string
Создает множественное имя переменной для представлений
Parameters
-
string$name Имя для использования
Returns
stringattachTo() public
attachTo(Cake\ORM\Query $query, array<string, mixed> $options = []): void
Изменяет объект Query, чтобы включить данные связанной целевой таблицы в окончательный результат
Массив options принимает следующие ключи:
- includeFields: Включать ли поля целевой модели в результат или нет
- foreignKey: Имя поля, используемого в качестве внешнего ключа, если false, ни одно не будет использовано
- conditions: массив со списком условий для фильтрации соединения
- fields: список полей в целевой таблице для включения в результат
- type: Тип соединения, которое будет использоваться (например, INNER)
Parameters
-
Cake\ORM\Query$query запрос, который нужно изменить, чтобы включить данные целевой таблицы
-
array<string, mixed>$options optional Любые дополнительные параметры или переопределения, которые следует учитывать
Returns
voidcanBeJoined() public
canBeJoined(array<string, mixed> $options = []): bool
Можно ли это объединение выразить напрямую в соединении запроса
Parameters
-
array<string, mixed>$options optional ключ пользовательских параметров, который может изменить возвращаемое значение
Returns
boolcascadeDelete() public
cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): bool
Очистить данные в соединительной таблице для заданной сущности.
Каждый реализующий класс должен обрабатывать каскадное удаление по мере необходимости.
Parameters
-
Cake\Datasource\EntityInterface$entity Сущность, которая инициировала каскадное удаление.
-
array<string, mixed>$options optional Параметры для исходного удаления.
Returns
booldefaultRowValue() public
defaultRowValue(array $row, bool $joined): array
Возвращает измененную строку после добавления свойства для этой связи со значением пустой по умолчанию в зависимости от того, была ли связь объединена или получена внешним образом.
Parameters
-
array$row -
bool$joined
Returns
arraydeleteAll() public
deleteAll(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Передает операцию удаления методу deleteAll целевой таблицы
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, которые будут использоваться, принимает все, что может принять Query::where().
Returns
intSee Also
eagerLoader() public
eagerLoader(array<string, mixed> $options): Closure
Загружает список записей в целевой таблице, которые связаны с другим набором записей в исходной таблице. Исходные записи могут быть указаны двумя способами: первый - путем передачи объекта Query, настроенного для поиска в исходной таблице, а второй - путем явной передачи массива значений первичных ключей из исходной таблицы.
Необходимый способ передачи связанных исходных записей управляется параметром "strategy". Когда используется стратегия подзапроса, потребуется запрос к исходной таблице. При использовании стратегии выбора будет использоваться список первичных ключей.
Возвращает замыкание, которое должно быть выполнено для каждой записи, возвращаемой в определенном запросе. Этот вызываемый объект будет отвечать за внедрение полей, связанных с каждой конкретной переданной строкой.
Массив options принимает следующие ключи:
- query: Объект Query, настроенный для поиска записей исходной таблицы
- keys: Список значений первичных ключей из исходной таблицы
- foreignKey: Имя поля, используемого для связи обеих таблиц
- conditions: Список условий, которые будут переданы методу where() запроса
- sort: Направление, в котором должны быть возвращены записи
- fields: Список полей для выбора из целевой таблицы
- contain: Список связанных таблиц для нетерпеливой загрузки, связанных с целевой таблицей
- strategy: Имя стратегии, которую нужно использовать для поиска записей целевой таблицы
- nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки
Parameters
-
array<string, mixed>$options
Returns
Closureexists() public
exists(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): bool
Передает операцию методу exists целевой таблицы после добавления условий по умолчанию для этой связи
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, которые нужно использовать для проверки соответствия любой записи.
Returns
boolSee Also
fetchTable() public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Вспомогательный метод для получения экземпляра таблицы.
Parameters
-
string|null$alias optional Имя псевдонима, которое вы хотите получить. Должно быть в формате CamelCase. Если
null, используется значение свойства $defaultTable.-
array<string, mixed>$options optional Параметры, с которыми вы хотите создать таблицу. Если таблица уже загружена, параметры реестра будут игнорироваться.
Returns
Cake\ORM\TableThrows
Cake\Core\Exception\CakeExceptionЕсли аргумент `$alias` и свойство `$defaultTable` оба равны `null`.
See Also
find() public
find(array<string, mixed>|string|null $type = null, array<string, mixed> $options = []): Cake\ORM\Query
Передает операцию поиска методу find целевой таблицы и соответствующим образом изменяет запрос на основе конфигурации этой связи.
Если ваша связь включает условия или средство поиска, соединительная таблица будет включена в связанные ассоциации запроса.
Parameters
-
array<string, mixed>|string|null$type optional тип запроса для выполнения, если передается массив, он будет интерпретироваться как параметр
$options-
array<string, mixed>$options optional Параметры для поиска
Returns
Cake\ORM\QuerySee Also
getBindingKey() public
getBindingKey(): array<string>|string
Возвращает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
Returns
array<string>|stringgetCascadeCallbacks() public
getCascadeCallbacks(): bool
Возвращает, должны ли каскадные удаления также запускать обратные вызовы.
Returns
boolgetClassName() public
getClassName(): string
Возвращает имя класса объекта целевой таблицы.
Returns
stringgetConditions() public
getConditions(): Closure|array
Возвращает список условий, которые всегда должны включаться при получении записей из целевой ассоциации.
Returns
Closure|arraySee Also
getDependent() public
getDependent(): bool
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в основном используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
Returns
boolgetFinder() public
getFinder(): array|string
Получает средство поиска по умолчанию для извлечения строк из целевой таблицы.
Returns
array|stringgetForeignKey() public
getForeignKey(): array<string>|string
Получает имя поля, представляющего внешний ключ к исходной таблице.
Returns
array<string>|stringgetJoinType() public
getJoinType(): string
Получает тип соединения, который будет использоваться при добавлении ассоциации к запросу.
Returns
stringgetName() public
getName(): string
Получает имя для этой ассоциации, обычно псевдоним, присвоенный целевой связанной таблице
Returns
stringgetProperty() public
getProperty(): string
Получает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Returns
stringgetSaveStrategy() public
getSaveStrategy(): string
Получает стратегию, которая должна использоваться для сохранения.
Returns
stringgetSort() public
getSort(): mixed
Получает порядок сортировки, в котором должны возвращаться целевые записи.
Returns
mixedgetSource() public
getSource(): Cake\ORM\Table
Получает экземпляр таблицы для исходной стороны ассоциации.
Returns
Cake\ORM\TablegetStrategy() public
getStrategy(): string
Получает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, а использовать стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
Returns
stringgetTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получает локатор таблицы.
Returns
Cake\ORM\Locator\LocatorInterfacegetTarget() public
getTarget(): Cake\ORM\Table
Получает экземпляр таблицы для целевой стороны ассоциации.
Returns
Cake\ORM\TablegetTargetForeignKey() public
getTargetForeignKey(): array<string>|string
Получает имя поля, представляющего внешний ключ к целевой таблице.
Returns
array<string>|stringgetThrough() public
getThrough(): Cake\ORM\Table|string
Получает текущую соединительную таблицу, имя экземпляра Table или сам экземпляр.
Returns
Cake\ORM\Table|stringisOwningSide() public
isOwningSide(Cake\ORM\Table $side): bool
Возвращает логическое значение true, так как обе таблицы «владеют» строками с другой стороны ассоциации через соединительную таблицу.
Parameters
-
Cake\ORM\Table$side Потенциальная таблица с правом собственности
Returns
booljunction() public
junction(Cake\ORM\Table|string|null $table = null): Cake\ORM\Table
Устанавливает экземпляр таблицы для отношения соединения. Если аргументы не переданы, возвращается текущий настроенный экземпляр таблицы
Parameters
-
Cake\ORM\Table|string|null$table optional Имя или экземпляр для соединительной таблицы
Returns
Cake\ORM\TableThrows
InvalidArgumentExceptionЕсли ожидаемые ассоциации несовместимы с существующими ассоциациями.
junctionConditions() protected
junctionConditions(): array
Возвращает отфильтрованные условия, которые специально ссылаются на соединительную таблицу.
Returns
arraylink() public
link(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string, mixed> $options = []): bool
Ассоциирует исходную сущность с каждой из целевых сущностей, предоставленных путем создания ссылок в соединительной таблице. Предполагается, что как исходная сущность, так и каждая из целевых сущностей уже сохранены, если они помечены как новые или их состояние неизвестно, то будет выброшено исключение.
При использовании этого метода все сущности в $targetEntities будут добавлены к свойству исходной сущности, соответствующему этому объекту ассоциации.
Этот метод не проверяет уникальность ссылки.
Example:
$newTags = $tags->find('relevant')->toArray();
$articles->getAssociation('tags')->link($article, $newTags); $article->get('tags') будет содержать все теги в $newTags после связывания
Parameters
-
Cake\Datasource\EntityInterface$sourceEntity строка, принадлежащая
sourceстороне этой ассоциации-
arrayCake\Datasource\EntityInterface>$targetEntities список сущностей, принадлежащих
targetстороне этой ассоциации-
array<string, mixed>$options optional список параметров, которые будут переданы во внутренний вызов
save
Returns
boolThrows
InvalidArgumentExceptionкогда обнаруживается, что любое из значений в $targetEntities еще не сохранено
replaceLinks() public
replaceLinks(Cake\Datasource\EntityInterface $sourceEntity, array $targetEntities, array<string, mixed> $options = []): bool
Заменяет существующие ссылки ассоциации между исходной сущностью и целевой на переданные. Этот метод выполняет интеллектуальную очистку, ссылки, которые уже сохранены и присутствуют в $targetEntities, не будут удалены, новые ссылки будут созданы для переданных целевых сущностей, которых еще нет в базе данных, а остальные будут удалены.
Например, если статья связана с тегами «cake» и «framework», и вы передаете этому методу массив, содержащий сущности для тегов «cake», «php» и «awesome», то только ссылка для cake будет сохранена в базе данных, ссылка для «framework» будет удалена, а ссылки для «php» и «awesome» будут созданы.
Существующие ссылки не удаляются и не создаются заново, они либо остаются нетронутыми, либо обновляются, чтобы потенциальная дополнительная информация, хранящаяся в строке соединения, не была потеряна. Обновление строки ссылки можно выполнить, убедившись, что соответствующая переданная целевая сущность содержит объединенное свойство с его первичным ключом и любой дополнительной информацией, которую необходимо сохранить.
В случае успеха переданный $sourceEntity будет содержать $targetEntities в качестве значения в соответствующем свойстве для этой ассоциации.
Этот метод предполагает, что связи между исходной сущностью и каждой из целевых сущностей уникальны. То есть для любой данной строки в исходной таблице может быть только одна связь в соединительной таблице, указывающая на любую другую данную строку в целевой таблице.
Дополнительные параметры для новых ссылок, которые необходимо сохранить, можно передать в третьем аргументе, см. Table::save() для получения информации о допустимых параметрах.
Example:
$article->tags = [$tag1, $tag2, $tag3, $tag4];
$articles->save($article);
$tags = [$tag1, $tag3];
$articles->getAssociation('tags')->replaceLinks($article, $tags); $article->get('tags') будет содержать только [$tag1, $tag3] в конце
Parameters
-
Cake\Datasource\EntityInterface$sourceEntity сущность, сохраненная в исходной таблице для этой ассоциации
-
array$targetEntities список сущностей из целевой таблицы, которые необходимо связать
-
array<string, mixed>$options optional список параметров, которые будут переданы во внутренние вызовы
save/deleteпри сохранении/обновлении новых ссылок или удалении существующих
Returns
boolThrows
InvalidArgumentExceptionесли передаются несохраненные сущности или если какой-либо из них не хватает значения первичного ключа
requiresKeys() public
requiresKeys(array<string, mixed> $options = []): bool
Возвращает true, если процесс загрузки будет требовать набор связывающих ключей владеющей таблицы, чтобы использовать их в качестве фильтра в запросе поиска.
Parameters
-
array<string, mixed>$options optional Параметры, содержащие стратегию, которая будет использоваться.
Returns
boolsaveAssociated() public
saveAssociated(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): Cake\Datasource\EntityInterface|false
Берёт сущность из исходной таблицы и проверяет, есть ли поле, соответствующее имени свойства для этой ассоциации. Найденная сущность будет сохранена в целевой таблице для этой ассоциации путём передачи предоставленного $options
При использовании стратегии «append» эта функция будет создавать только новые связи между каждой стороной этой ассоциации. Она не будет уничтожать существующие, даже если они могут отсутствовать в массиве сущностей, которые должны быть сохранены.
При использовании стратегии «replace» существующие связи будут удалены, и в объединённой таблице будут созданы новые связи. Если в базе данных существуют ссылки на некоторые из сущностей, предназначенных для сохранения этим методом, они будут обновлены, а не удалены.
Параметры
-
Cake\Datasource\EntityInterface$entity сущность из исходной таблицы
-
array<string, mixed>$options optional параметры, которые будут переданы методу save в целевой таблице
Возвращает
Cake\Datasource\EntityInterface|falseИсключения
InvalidArgumentExceptionесли свойство, представляющее ассоциацию в родительской сущности, не может быть пройдено
См. также
\Cake\ORM\Association\BelongsToMany::replaceLinks()
setBindingKey() public
setBindingKey(array<string>|string $key): $this
Устанавливает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
Параметры
-
array<string>|string$key поле или поля таблицы, которые будут использоваться для связывания обеих таблиц
Возвращает
$thissetCascadeCallbacks() public
setCascadeCallbacks(bool $cascadeCallbacks): $this
Устанавливает, должны ли каскадные удаления также запускать коллбэки.
Параметры
-
bool$cascadeCallbacks значение переключателя каскадных коллбэков
Возвращает
$thissetClassName() public
setClassName(string $className): $this
Устанавливает имя класса объекта целевой таблицы.
Параметры
-
string$className Имя класса для установки.
Возвращает
$thisИсключения
InvalidArgumentExceptionВ случае, если имя класса устанавливается после того, как целевая таблица была разрешена, и оно не совпадает с именем класса целевой таблицы.
setConditions() public
setConditions(Closure|array $conditions): $this
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации.
Параметры
-
Closure|array$conditions
Возвращает
$thissetDependent() public
setDependent(bool $dependent): $this
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в основном используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
Если параметры не переданы, возвращается текущее значение.
Параметры
-
bool$dependent Установить режим зависимости. Используйте null для чтения текущего состояния.
Возвращает
$thissetFinder() public
setFinder(array|string $finder): $this
Устанавливает средство поиска по умолчанию для извлечения строк из целевой таблицы.
Параметры
-
array|string$finder имя средства поиска для использования или массив имени средства поиска и параметра.
Возвращает
$thissetForeignKey() public
setForeignKey(array<string>|string $key): $this
Устанавливает имя поля, представляющего внешний ключ к целевой таблице.
Параметры
-
array<string>|string$key ключ или ключи, которые будут использоваться для связывания обеих таблиц
Возвращает
$thissetJoinType() public
setJoinType(string $type): $this
Устанавливает тип соединения, который будет использоваться при добавлении ассоциации к запросу.
Параметры
-
string$type тип соединения, который будет использоваться (например, INNER)
Возвращает
$thissetName() public
setName(string $name): $this
Устанавливает имя для этой ассоциации, обычно псевдоним, присвоенный целевой связанной таблице
Параметры
-
string$name Имя для присвоения
Возвращает
$thissetProperty() public
setProperty(string $name): $this
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Параметры
-
string$name Имя свойства ассоциации. Используйте null для чтения текущего значения.
Возвращает
$thissetSaveStrategy() public
setSaveStrategy(string $strategy): $this
Устанавливает стратегию, которая должна использоваться для сохранения.
Параметры
-
string$strategy имя стратегии, которая будет использоваться
Возвращает
$thisИсключения
InvalidArgumentExceptionесли передано недопустимое имя стратегии
setSort() public
setSort(mixed $sort): $this
Устанавливает порядок сортировки, в котором должны возвращаться целевые записи.
Параметры
-
mixed$sort Условие order, совместимое с find()
Возвращает
$thissetSource() public
setSource(Cake\ORM\Table $table): $this
Устанавливает экземпляр таблицы для исходной стороны ассоциации.
Параметры
-
Cake\ORM\Table$table экземпляр, который будет назначен как исходная сторона
Возвращает
$thissetStrategy() public
setStrategy(string $name): $this
Устанавливает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут реализовывать только стратегию по умолчанию, делая любые изменения этого параметра недействительными.
Параметры
-
string$name Тип стратегии. Используйте null для чтения текущего значения.
Возвращает
$thisИсключения
InvalidArgumentExceptionКогда предоставлена недействительная стратегия.
setTableLocator() public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Устанавливает локатор таблиц.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator Экземпляр LocatorInterface.
Возвращает
$thissetTarget() public
setTarget(Cake\ORM\Table $table): $this
Устанавливает экземпляр таблицы для целевой стороны ассоциации.
Параметры
-
Cake\ORM\Table$table экземпляр, который будет назначен как целевая сторона
Возвращает
$thissetTargetForeignKey() public
setTargetForeignKey(array<string>|string $key): $this
Устанавливает имя поля, представляющего внешний ключ к целевой таблице.
Параметры
-
array<string>|string$key ключ, который будет использоваться для связывания обеих таблиц
Возвращает
$thissetThrough() public
setThrough(Cake\ORM\Table|string $through): $this
Устанавливает текущую соединительную таблицу, либо имя экземпляра Table, либо сам экземпляр.
Parameters
-
Cake\ORM\Table|string$through Имя экземпляра Table или сам экземпляр
Returns
$thistargetConditions() protected
targetConditions(): arrayClosure|null
Возвращает отфильтрованные условия, которые ссылаются на целевую таблицу.
Любые строковые выражения или объекты выражений также будут возвращены в этом списке.
Returns
arrayClosure|nulltransformRow() public
transformRow(array $row, string $nestKey, bool $joined, string|null $targetProperty = null): array
Правильно вкладывает значения строки результата, связанные со значениями, в правильные ключи массива внутри исходных результатов.
Parameters
-
array$row Строка для преобразования
-
string$nestKey Ключ массива, под которым должны быть найдены результаты для этой ассоциации
-
bool$joined Является ли строка результатом прямого соединения с этой ассоциацией
-
string|null$targetProperty optional Имя свойства в исходных результатах, где должны быть вложены данные ассоциации. Будет использоваться значение по умолчанию, если не указано.
Returns
arraytype() public
type(): string
Получить тип связи.
Returns
stringunlink() public
unlink(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string>|bool $options = []): bool
Удаляет все связи между переданным исходным объектом и каждым из предоставленных целевых объектов. Этот метод предполагает, что все переданные объекты уже сохранены в базе данных и что каждый из них содержит значение первичного ключа.
Options
В дополнение к опциям по умолчанию, принимаемым Table::delete(), поддерживаются следующие ключи:
- cleanProperty: Удалять ли все объекты в
$targetEntitiesкоторые хранятся в$sourceEntity(по умолчанию: true)
По умолчанию этот метод сбросит каждый из объектов сущности, хранящихся внутри исходной сущности.
Example:
$article->tags = [$tag1, $tag2, $tag3, $tag4];
$tags = [$tag1, $tag2, $tag3];
$articles->getAssociation('tags')->unlink($article, $tags); $article->get('tags') будет содержать только [$tag4] после удаления в базе данных
Parameters
-
Cake\Datasource\EntityInterface$sourceEntity Сущность, сохраненная в исходной таблице для этой ассоциации.
-
arrayCake\Datasource\EntityInterface>$targetEntities Список сущностей, сохраненных в целевой таблице для этой ассоциации.
-
array<string>|bool$options optional Список параметров, которые нужно передать во внутренний вызов
delete, илиbooleanкак сокращение ключаcleanProperty.
Returns
boolThrows
InvalidArgumentExceptionЕсли переданы несохраненные сущности или если какая-либо из них не имеет значения первичного ключа.
updateAll() public
updateAll(array $fields, Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Передает операцию обновления методу updateAll целевой таблицы
Parameters
-
array$fields Хэш поле => новое значение.
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, которые будут использоваться, принимает все, что может принять Query::where().
Returns
intSee Also
Подробное описание свойства
$_bindingKey protected
Имя поля в таблице владельца, используемое для сопоставления с foreignKey
Type
array<string>|string|null$_cascadeCallbacks protected
Следует ли также вызывать обратные вызовы при каскадном удалении.
Type
bool$_className protected
Имя класса объекта целевой таблицы
Type
string$_conditions protected
Список условий, которые всегда должны включаться при извлечении записей из целевого связанного объекта
Type
Closure|array$_dependent protected
Следует ли удалять записи в объединенной таблице, когда удаляется запись в исходной таблице.
По умолчанию true для обратной совместимости.
Type
bool$_finder protected
Имя средства поиска по умолчанию, используемое для извлечения строк из целевой таблицы. С массивом значений допускаются имя средства поиска и параметры по умолчанию.
Type
array|string$_foreignKey protected
Имя поля, представляющего внешний ключ к загружаемой таблице
Type
array<string>|string$_joinType protected
Тип соединения, используемый при добавлении связи к запросу
Type
string$_junctionAssociationName protected
Имя связи hasMany из целевой таблицы в соединительную таблицу
Type
string$_junctionConditions protected
Отфильтрованные условия, которые ссылаются на соединительную таблицу.
Type
array|null$_junctionProperty protected
Имя свойства, которое должно быть установлено, содержащее данные из соединительной таблицы после того, как запись из целевой таблицы будет гидратирована
Type
string$_junctionTable protected
Экземпляр соединительной таблицы
Type
Cake\ORM\Table$_junctionTableName protected
Имя соединительной таблицы
Type
string$_name protected
Имя, данное связи, обычно представляет псевдоним, присвоенный целевой связанной таблице
Type
string$_propertyName protected
Имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Type
string$_saveStrategy protected
Стратегия сохранения, используемая этой ассоциацией
Type
string$_sort protected
Порядок, в котором должны возвращаться записи цели
Type
mixed$_sourceTable protected
Экземпляр исходной таблицы
Type
Cake\ORM\Table$_strategy protected
Имя стратегии, используемой для извлечения связанных записей.
Type
string$_tableLocator protected
Экземпляр локатора таблиц
Type
Cake\ORM\Locator\LocatorInterface|null$_targetConditions protected
Отфильтрованные условия, которые ссылаются на целевую таблицу.
Type
array|null$_targetForeignKey protected
Имя поля, представляющего внешний ключ к целевой таблице
Type
array<string>|string|null$_targetTable protected
Экземпляр целевой таблицы
Type
Cake\ORM\Table$_through protected
Экземпляр таблицы для связи соединения.
Type
Cake\ORM\Table|string$_validStrategies protected
Допустимые стратегии для этого типа связи
Type
array<string>$defaultTable protected
Псевдоним таблицы по умолчанию для этого объекта.
Type
string|null
© 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.BelongsToMany.html