Класс BelongsToMany
Представляет отношение М - Н, где существует соединительная таблица, содержащая поля связи между исходной и целевой таблицами.
Примером ассоциации 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Имя поля в таблице владельца, используемое для сопоставления с внешним ключом
- $_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
Условно добавляет условие в переданный запрос, которое будет находить записи, где нет совпадения с этой ассоциацией.
-
_bindNewAssociations() protected
Применяет все присоединяемые ассоциации к
$queryиз контейнеров, найденных в$surrogateзапросе. -
_camelize() protected
Создает пришлизованную версию $name
-
_checkPersistenceStatus() protected
Выбрасывает исключение, если какая-либо из переданных сущностей не сохранена.
-
_collectJointEntities() protected
Возвращает список совместных сущностей, которые существуют между исходной сущностью и каждой из переданных целевых сущностей
-
_diffLinks() protected
Вспомогательный метод, используемый для удаления различий между ссылками, переданными в
$existingи$jointEntities. Этот метод вернёт значения из$targetEntities, которые не были удалены при вычислении разницы. -
_dispatchBeforeFind() protected
Вызывает beforeFind для целевой таблицы запроса, к которому присоединяется данное отношение
-
_entityName() protected
Создаёт правильное имя сущности (единственное число) для указанного имени
-
_extractFinder() protected
Вспомогательный метод для вывода запрошенного нахождения и его параметров.
-
_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
Получает текущую таблицу соединения, либо имя экземпляра таблицы, либо сам экземпляр.
-
isOwningSide() public
Возвращает значение boolean 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 необязательно Список свойств, которые необходимо установить для этого объекта
__get() public
__get(string $property): Cake\ORM\Association
Делегирует получение свойств целевой таблице. Это удобно для получения ассоциаций этой ассоциации.
Параметры
-
string$property Имя свойства
Возвращает
Cake\ORM\AssociationИсключения
RuntimeExceptionесли ассоциации с таким именем не существует
__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
Условно добавляет условие в переданный запрос, которое будет искать записи, где нет совпадения с этой ассоциацией.
Параметры
-
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>Исключения
InvalidArgumentExceptionесли у какой-либо из сущностей отсутствует значение первичного ключа
_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() защищённый
_formatAssociationResults(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Добавляет функцию форматирования к переданному $query , если запрос $surrogate объявляет любой другой форматировщик. Поскольку запрос $surrogate соответствует связанной целевой таблице, результирующий форматировщик будет результатом применения форматировщиков-заменителей только к свойству, соответствующему этой таблице.
Параметры
-
Cake\ORM\Query$query запрос, к которому будет применено форматирование
-
Cake\ORM\Query$surrogate запрос, содержащий форматировщики для связанной целевой таблицы.
-
array<string, mixed>$options параметры, передаваемые методу
attachTo
Возвращает
void_generateJunctionAssociations() защищённый
_generateJunctionAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source, Cake\ORM\Table $target): void
Генерирует связи в таблице соединения при необходимости
Генерирует следующие связи:
- соединение принадлежит источнику, например, ArticlesTags принадлежит Tags
- соединение принадлежит цели, например, ArticlesTags принадлежит Articles
Вы можете переопределить эти сгенерированные связи, определив связи с правильными псевдонимами.
Параметры
-
Cake\ORM\Table$junction Таблица соединения.
-
Cake\ORM\Table$source Источник таблицы.
-
Cake\ORM\Table$target Целевая таблица.
Возвращает
voidИспользует
InvalidArgumentExceptionЕсли ожидаемые ассоциации несовместимы с существующими ассоциациями.
_generateSourceAssociations() protected
_generateSourceAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source): void
Генерировать дополнительные ассоциации таблицы источника по необходимости.
Генерирует следующие ассоциации:
- источник имеет множество соединений, например, Теги имеют множество СтатейТеги
Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.
Параметры
-
Cake\ORM\Table$junction Таблица соединения.
-
Cake\ORM\Table$source Таблица источника.
Возвращает
void_generateTargetAssociations() protected
_generateTargetAssociations(Cake\ORM\Table $junction, Cake\ORM\Table $source, Cake\ORM\Table $target): void
Генерировать взаимные ассоциации по необходимости.
Генерирует следующие ассоциации:
- цель имеет множество соединений, например, Статьи имеют множество СтатьиТеги
- цель принадлежит многим источникам, например Статьи принадлежат многим Тегам.
Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.
Параметры
-
Cake\ORM\Table$junction Таблица соединения.
-
Cake\ORM\Table$source Таблица источника.
-
Cake\ORM\Table$target Таблица цели.
Возвращает
void_joinCondition() protected
_joinCondition(array<string, mixed> $options): array
Возвращает false, так как условия объединения определены в таблице соединения
Параметры
-
array<string, mixed>$options список опций, переданных методу attachTo
Возвращает
array_junctionAssociationName() protected
_junctionAssociationName(): string
Возвращает имя ассоциации от таблицы цели к таблице соединения, это имя используется для генерации псевдонима в запросе и для последующего извлечения результатов.
Возвращает
string_junctionTableName() protected
_junctionTableName(string|null $name = null): string
Устанавливает имя таблицы соединения. Если аргументы не переданы, возвращается текущее конфигурированное имя. Если не найдено, будет сгенерировано имя по умолчанию на основе связанных таблиц.
Параметры
-
string|null$name необязательный Имя таблицы соединения.
Возвращает
string_modelKey() protected
_modelKey(string $name): string
Создаёт правильный подчеркнутый ключ модели для ассоциаций.
Если входная строка содержит точку, предполагается, что правая часть — это фактическое имя таблицы.
Параметры
-
string$name Имя класса модели
Возвращает
string_modelNameFromKey() protected
_modelNameFromKey(string $key): string
Создаёт правильное имя модели из внешнего ключа.
Параметры
-
string$key Внешний ключ
Возвращает
string_options() protected
_options(array<string, mixed> $options): void
Обрабатывает дополнительные параметры, переданные в конструктор.
Параметры
-
array<string, mixed>$options Исходный список параметров, переданных в конструктор
Возвращает
void_pluginNamespace() protected
_pluginNamespace(string $pluginName): string
Возвращает пространство имён плагина.
Параметры
-
string$pluginName Имя плагина
Возвращает
string_pluginPath() protected
_pluginPath(string $pluginName): string
Найти правильный путь для плагина. Сканирует $pluginPaths для нужного плагина.
Параметры
-
string$pluginName Имя плагина, например, DebugKit
Возвращает
string_pluralHumanName() protected
_pluralHumanName(string $name): string
Создаёт множественное число для человекопонятного имени, используемого в представлениях
Параметры
-
string$name Имя контроллера
Возвращает
string_propertyName() protected
_propertyName(): string
Возвращает имя свойства по умолчанию на основе имени ассоциации.
Возвращает
string_saveLinks() protected
_saveLinks(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string, mixed> $options): bool
Создаёт ссылки между сущностью-источником и каждой из переданных сущностей-целей.
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity сущность из таблицы источника в этой ассоциации
-
arrayCake\Datasource\EntityInterface>$targetEntities список сущностей для связывания со сущностью-источником с использованием таблицы соединения
-
array<string, mixed>$options список опций, принимаемых
Table::save()
Возвращает
bool_saveTarget() защищенное
_saveTarget(Cake\Datasource\EntityInterface $parentEntity, array $entities, array<string, mixed> $options): Cake\Datasource\EntityInterface|false
Сохраняет каждый из сущностей в целевую таблицу и создаёт ссылки между родительской сущностью и каждой из сохранённых целевых сущностей.
Параметры
-
Cake\Datasource\EntityInterface$parentEntity исходная сущность, содержащая целевые сущности, которые необходимо сохранить.
-
array$entities список сущностей для сохранения в целевой таблице и для создания ссылки на родительскую сущность
-
array<string, mixed>$options список параметров, принимаемых
Table::save()
Возвращает
Cake\Datasource\EntityInterface|falseИсключения
InvalidArgumentExceptionесли свойство, представляющее ассоциацию в родительской сущности, невозможно проследить
_singularHumanName() защищенное
_singularHumanName(string $name): string
Создаёт единственное человекопонятное имя, используемое в представлениях.
Параметры
-
string$name Имя контроллера
Возвращает
string_singularName() защищенное
_singularName(string $name): string
Создаёт единственное имя для использования в представлениях.
Параметры
-
string$name Имя для использования
Возвращает
string_variableName() защищенное
_variableName(string $name): string
Создаёт множественное имя переменной для представлений.
Параметры
-
string$name Имя для использования
Возвращает
stringattachTo() public
attachTo(Cake\ORM\Query $query, array<string, mixed> $options = []): void
Изменяет объект запроса, чтобы включить связанные данные целевой таблицы в конечный результат
Массив параметров принимает следующие ключи:
- includeFields: Включать ли поля целевой модели в результат
- foreignKey: Название поля для использования в качестве внешнего ключа, если false, не используется
- conditions: массив с списком условий для фильтрации объединения
- fields: список полей в целевой таблице для включения в результат
- type: Тип объединения (например, INNER)
Параметры
-
Cake\ORM\Query$query запрос, который нужно изменить, чтобы включить данные целевой таблицы
-
array<string, mixed>$options optional Дополнительные параметры или переопределения, которые необходимо учитывать
Возвращаемое значение
voidcanBeJoined() public
canBeJoined(array<string, mixed> $options = []): bool
Можно ли выразить эту ассоциацию напрямую в соединении запроса
Параметры
-
array<string, mixed>$options optional настраиваемый ключ параметров, который может изменить возвращаемое значение
Возвращаемое значение
boolcascadeDelete() public
cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): bool
Очистить данные в таблице соединения для заданного сущности.
Каждый реализующий класс должен обрабатывать каскадное удаление, как требуется.
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность, которая инициировала каскадное удаление.
-
array<string, mixed>$options optional Параметры для исходного удаления.
Возвращаемое значение
booldefaultRowValue() public
defaultRowValue(array<string, mixed> $row, bool $joined): array<string, mixed>
Возвращает изменённую строку после добавления свойства для данной ассоциации со значением по умолчанию (пустым) в зависимости от того, была ли ассоциация присоединена или получена извне.
Параметры
-
array<string, mixed>$row -
bool$joined
Возвращает
array<string, mixed>deleteAll() public
deleteAll(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Делегирует операцию удаления методу deleteAll целевой таблицы.
Параметры
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условиям, которые принимаются методом Query::where().
Возвращает
intСм. также
eagerLoader() public
eagerLoader(array<string, mixed> $options): Closure
Жадно загружает список записей в целевой таблице, связанных с другим набором записей в исходной таблице. Источник записей можно указать двумя способами: во-первых, передав объект Query, настроенный для поиска в исходной таблице, и, во-вторых, явно передав массив значений первичных ключей из исходной таблицы.
Требуемый способ передачи связанных записей источника контролируется «стратегией». При использовании стратегии подзапроса потребуется запрос к исходной таблице. При использовании стратегии выбора будет использован список первичных ключей.
Возвращает замыкание, которое должно выполняться для каждой записи, возвращённой в определённом запросе. Эта функция будет отвечать за внедрение полей, связанных с каждой конкретной переданной строкой.
Массив опций принимает следующие ключи:
- query: Объект Query, настроенный для поиска записей исходной таблицы
- keys: Список значений первичных ключей из исходной таблицы
- foreignKey: Название поля, используемого для связи обеих таблиц
- conditions: Список условий, которые будут переданы методу where() запроса
- sort: Направление, в котором должны быть возвращены записи
- fields: Список полей для выбора из целевой таблицы
- contain: Список связанных таблиц, которые нужно жадно загрузить, связанных с целевой таблицей
- strategy: Название стратегии, которую нужно использовать для поиска записей целевой таблицы
- nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки
Параметры
-
array<string, mixed>$options
Возвращает
Closureexists() public
exists(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): bool
Делегирует операцию методу exists целевой таблицы после добавления стандартных условий для этой ассоциации
Параметры
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, используемые для проверки наличия соответствующей записи.
Возвращает
boolСм. также
fetchTable() public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Удобный метод для получения экземпляра таблицы.
Параметры
-
string|null$alias необязательно Имя псевдонима, которое вы хотите получить. Должно быть в формате CamelCase. Если
null, то используется значение свойства $defaultTable.-
array<string, mixed>$options необязательно Опции, с которыми вы хотите создать таблицу. Если таблица уже загружена, опции реестра будут проигнорированы.
Возвращает
Cake\ORM\TableИсключения
Cake\Core\Exception\CakeExceptionЕсли аргумент `$alias` и свойство `$defaultTable` оба имеют значение `null`.
См. также
find() public
find(array<string, mixed>|string|null $type = null, array<string, mixed> $options = []): Cake\ORM\Query
Делегирует операцию поиска методу find целевой таблицы и соответственно модифицирует запрос на основе конфигурации этого объединения.
Если ваше объединение включает условия или поиск, таблица соединения будет включена в ассоциации запроса.
Параметры
-
array<string, mixed>|string|null$type необязательно тип запроса, если передано массив, он будет интерпретирован как
$optionsпараметр-
array<string, mixed>$options необязательно Опции для поиска
Возвращает
Cake\ORM\QueryСм. также
getBindingKey() public
getBindingKey(): array<string>|string
Получает имя поля, представляющего поле привязки к целевой таблице. Если не указано вручную, используется первичный ключ таблицы-владельца.
Возвращает
array<string>|stringgetCascadeCallbacks() public
getCascadeCallbacks(): bool
Получает, следует ли при каскадном удалении также запускать обратные вызовы.
Возвращает
boolgetClassName() public
getClassName(): string
Получает имя класса объекта целевой таблицы.
Возвращает
stringgetConditions() public
getConditions(): Closure|array
Получает список условий, которые всегда должны включаться при извлечении записей из целевого объединения.
Возвращает
Closure|arrayСм. также
getDependent() public
getDependent(): bool
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в первую очередь используется для указания того, что записи должны быть удалены, если запись-владелец в исходной таблице удалена.
Возвращает
boolgetFinder() public
getFinder(): array|string
Получает используемый по умолчанию поиск для извлечения строк из целевой таблицы.
Возвращает
array|stringgetForeignKey() public
getForeignKey(): array<string>|string
Получает имя поля, представляющего внешний ключ к исходной таблице.
Возвращает
array<string>|stringgetJoinType() public
getJoinType(): string
Получает тип соединения, который будет использоваться при добавлении объединения в запрос.
Возвращает
stringgetName() public
getName(): string
Получает имя для этого объединения, обычно псевдоним, назначенный целевой связанной таблице
Возвращает
stringgetProperty() public
getProperty(): string
Получает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Возвращает
stringgetSaveStrategy() public
getSaveStrategy(): string
Получает стратегию, которая должна использоваться для сохранения.
Возвращает
stringgetSort() public
getSort(): mixed
Получает порядок сортировки, в котором должны возвращаться целевые записи.
Возвращает
mixedgetSource() public
getSource(): Cake\ORM\Table
Получает экземпляр таблицы для стороны источника объединения.
Возвращает
Cake\ORM\TablegetStrategy() public
getStrategy(): string
Получает имя стратегии, которое должно использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы объединений могут не реализовывать, но использовать по умолчанию стратегию, делая любые изменения в этом параметре недействительными.
Возвращает
stringgetTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получает локатор таблицы.
Возвращает
Cake\ORM\Locator\LocatorInterfacegetTarget() public
getTarget(): Cake\ORM\Table
Получает экземпляр таблицы для целевой стороны объединения.
Возвращает
Cake\ORM\TablegetTargetForeignKey() public
getTargetForeignKey(): array<string>|string
Получает имя поля, представляющего внешний ключ для целевой таблицы.
Возвращает
array<string>|stringgetThrough() public
getThrough(): Cake\ORM\Table|string
Получает текущую таблицу соединения, либо имя экземпляра таблицы, либо сам экземпляр.
Возвращает
Cake\ORM\Table|stringisOwningSide() public
isOwningSide(Cake\ORM\Table $side): bool
Возвращает boolean true, так как обе таблицы «владеют» строками на другой стороне ассоциации через таблицу соединения.
Параметры
-
Cake\ORM\Table$side Возможная таблица с правом владения
Возвращает
booljunction() public
junction(Cake\ORM\Table|string|null $table = null): Cake\ORM\Table
Устанавливает экземпляр таблицы для отношения соединения. Если аргументы не переданы, возвращается текущий сконфигурированный экземпляр таблицы.
Параметры
-
Cake\ORM\Table|string|null$table optional Имя или экземпляр таблицы соединения
Возвращает
Cake\ORM\TableИсключения
InvalidArgumentExceptionЕсли ожидаемые ассоциации несовместимы с существующими ассоциациями.
junctionConditions() protected
junctionConditions(): array
Возвращает отфильтрованные условия, которые конкретно ссылаются на таблицу соединения.
Возвращает
arraylink() public
link(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string, mixed> $options = []): bool
Связывает сущность-источник с каждой из целевых сущностей, создавая ссылки в таблице сопряжения. Предполагается, что и сущность-источник, и каждая из целевых сущностей уже сохранены; если они помечены как новые или их статус неизвестен, будет выброшено исключение.
При использовании этого метода все сущности в $targetEntities будут добавлены в свойство сущности-источника, соответствующее этому объекту ассоциации.
Этот метод не проверяет уникальность ссылок.
Пример:
$newTags = $tags->find('relevant')->toArray();
$articles->getAssociation('tags')->link($article, $newTags); $article->get('tags') будет содержать все теги из $newTags после связывания
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity строка, относящаяся к стороне
sourceэтой ассоциации-
arrayCake\Datasource\EntityInterface>$targetEntities список сущностей, относящихся к стороне
targetэтой ассоциации-
array<string, mixed>$options необязательно список параметров, передаваемых в вызов внутренней
save
Возвращает
boolИсключения
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() для информации о поддерживаемых параметрах.
Пример:
$article->tags = [$tag1, $tag2, $tag3, $tag4];
$articles->save($article);
$tags = [$tag1, $tag3];
$articles->getAssociation('tags')->replaceLinks($article, $tags); $article->get('tags') будет содержать только [$tag1, $tag3] в конце
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity сущность, сохранённая в таблице источника для этой ассоциации
-
array$targetEntities список сущностей из таблицы цели, которые необходимо связать
-
array<string, mixed>$options необязательно список параметров, которые необходимо передать внутренним
save/deleteвызовам при сохранении/обновлении новых ссылок или удалении существующих
Возвращает
boolИсключения
InvalidArgumentExceptionесли переданы несохранённые сущности или если у какой-либо из них отсутствует значение первичного ключа
requiresKeys() public
requiresKeys(array<string, mixed> $options = []): bool
Возвращает true, если процесс жадного загрузки потребует набор ключей связывания таблицы-владельца для использования их в качестве фильтра в запросе на поиск.
Параметры
-
array<string, mixed>$options необязательный Параметры, содержащие стратегию, которая будет использоваться.
Возвращает
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 необязательный параметры, которые будут переданы методу сохранения в целевой таблице
Возвращает
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 Оператор сортировки, совместимый с 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
Устанавливает текущую таблицу соединения, либо имя экземпляра таблицы, либо сам экземпляр.
Параметры
-
Cake\ORM\Table|string$through Имя экземпляра таблицы или сам экземпляр.
Возвращает
$thistargetConditions() protected
targetConditions(): arrayClosure|null
Возвращает отфильтрованные условия, которые ссылаются на целевую таблицу.
Любые строковые выражения или объекты выражений также будут возвращены в этом списке.
Возвращает
arrayClosure|nulltransformRow() public
transformRow(array $row, string $nestKey, bool $joined, string|null $targetProperty = null): array
Правильно вложены значения строки результата в соответствующие ключи массива внутри исходных результатов.
Параметры
-
array$row Строка для преобразования
-
string$nestKey Ключ массива, в котором должны быть найдены результаты этой ассоциации
-
bool$joined Является ли строка результатом прямого соединения с этой ассоциацией
-
string|null$targetProperty optional Имя свойства в исходных результатах, где должны быть вложены данные ассоциации. Будет использовано значение по умолчанию, если не указано.
Возвращает
arraytype() public
type(): string
Получить тип отношения.
Возвращает
stringunlink() public
unlink(Cake\Datasource\EntityInterface $sourceEntity, arrayCake\Datasource\EntityInterface> $targetEntities, array<string>|bool $options = []): bool
Удаляет все связи между переданной исходной сущностью и каждой из предоставленных целевых сущностей. Этот метод предполагает, что все переданные объекты уже сохранены в базе данных и что каждый из них содержит значение первичного ключа.
Параметры
В дополнение к параметрам, принятым по умолчанию Table::delete(), поддерживаются следующие ключи:
- cleanProperty: Удалять ли все объекты в
$targetEntities, которые хранятся в$sourceEntity(по умолчанию: true)
По умолчанию этот метод будет сбрасывать каждый из объектов сущности, хранящихся внутри исходной сущности.
Пример:
$article->tags = [$tag1, $tag2, $tag3, $tag4];
$tags = [$tag1, $tag2, $tag3];
$articles->getAssociation('tags')->unlink($article, $tags); $article->get('tags') будет содержать только [$tag4] после удаления в базе данных
Параметры
-
Cake\Datasource\EntityInterface$sourceEntity Сущность, сохранённая в таблице источника для этой ассоциации.
-
arrayCake\Datasource\EntityInterface>$targetEntities Список сущностей, сохранённых в целевой таблице для этой ассоциации.
-
array<string>|bool$options optional Список параметров, которые будут переданы внутреннему вызову
delete, илиbooleanв качестве сокращения ключаcleanProperty.
Возвращаемое значение
boolИсключения
InvalidArgumentExceptionЕсли переданы несохранённые сущности или если какой-либо из них не имеет значения первичного ключа.
updateAll() public
updateAll(array $fields, Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Делегирует операцию обновления методу updateAll целевой таблицы.
Параметры
-
array$fields Хэш поле => новое значение.
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, принимаются любые, которые может принять Query::where().
Возвращаемое значение
intСм. также
Подробное описание свойства
$_bindingKey protected
Имя поля в таблице стороны владения, используемого для сопоставления с foreignKey
Тип
array<string>|string|null$_cascadeCallbacks protected
Следует ли также вызывать обратные вызовы при каскадном удалении.
Тип
bool$_className protected
Имя класса объекта целевой таблицы
Тип
string$_conditions protected
Список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации
Тип
Closure|array$_dependent protected
Следует ли удалять записи в таблице соединения при удалении записи в исходной таблице.
По умолчанию значение true для обратной совместимости.
Тип
bool$_finder protected
Имя используемого по умолчанию findera для извлечения строк из целевой таблицы. С массивом значения, имя findera и опции по умолчанию разрешены.
Тип
array|string$_foreignKey protected
Имя поля, представляющего внешний ключ к таблице для загрузки
Тип
array<string>|string$_joinType protected
Тип соединения, который будет использоваться при добавлении ассоциации в запрос
Тип
string$_junctionAssociationName protected
Имя ассоциации hasMany из целевой таблицы в таблицу связи
Тип
string$_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
© 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.4/class-Cake.ORM.Association.BelongsToMany.html