Spec-Zone.ru › CakePHP 4.4

Класс BelongsToMany

Представляет отношение М - Н, где существует соединительная таблица, содержащая поля связи между исходной и целевой таблицами.

Примером ассоциации BelongsToMany является статья, которая принадлежит многим тегам. В этом примере «Статья» является исходной таблицей, а «Теги» — целевой таблицей.

Пространство имен: Cake\ORM\Association

Константы

  • string
    MANY_TO_MANY
    'manyToMany'

    Тип ассоциации для ассоциаций многие ко многим.

  • string
    MANY_TO_ONE
    'manyToOne'

    Тип ассоциации для ассоциаций многие к одному.

  • string
    ONE_TO_MANY
    'oneToMany'

    Тип ассоциации для ассоциаций один ко многим.

  • string
    ONE_TO_ONE
    'oneToOne'

    Тип ассоциации для ассоциаций один к одному.

  • string
    SAVE_APPEND
    'append'

    Стратегия сохранения, которая будет только добавлять в набор ссылок.

  • string
    SAVE_REPLACE
    'replace'

    Стратегия сохранения, которая заменит ссылки предоставленным набором.

  • string
    STRATEGY_JOIN
    'join'

    Название стратегии для использования объединений для извлечения связанных записей.

  • string
    STRATEGY_SELECT
    'select'

    Название стратегии для использования запроса SELECT для извлечения связанных записей.

  • string
    STRATEGY_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

Имя для использования

Возвращает

string

attachTo() 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

Дополнительные параметры или переопределения, которые необходимо учитывать

Возвращаемое значение

void

canBeJoined() public

canBeJoined(array<string, mixed> $options = []): bool

Можно ли выразить эту ассоциацию напрямую в соединении запроса

Параметры

array<string, mixed> $options optional

настраиваемый ключ параметров, который может изменить возвращаемое значение

Возвращаемое значение

bool

cascadeDelete() public

cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): bool

Очистить данные в таблице соединения для заданного сущности.

Каждый реализующий класс должен обрабатывать каскадное удаление, как требуется.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность, которая инициировала каскадное удаление.

array<string, mixed> $options optional

Параметры для исходного удаления.

Возвращаемое значение

bool

defaultRowValue() 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

См. также

\Cake\ORM\Table::deleteAll()

eagerLoader() public

eagerLoader(array<string, mixed> $options): Closure

Жадно загружает список записей в целевой таблице, связанных с другим набором записей в исходной таблице. Источник записей можно указать двумя способами: во-первых, передав объект Query, настроенный для поиска в исходной таблице, и, во-вторых, явно передав массив значений первичных ключей из исходной таблицы.

Требуемый способ передачи связанных записей источника контролируется «стратегией». При использовании стратегии подзапроса потребуется запрос к исходной таблице. При использовании стратегии выбора будет использован список первичных ключей.

Возвращает замыкание, которое должно выполняться для каждой записи, возвращённой в определённом запросе. Эта функция будет отвечать за внедрение полей, связанных с каждой конкретной переданной строкой.

Массив опций принимает следующие ключи:

  • query: Объект Query, настроенный для поиска записей исходной таблицы
  • keys: Список значений первичных ключей из исходной таблицы
  • foreignKey: Название поля, используемого для связи обеих таблиц
  • conditions: Список условий, которые будут переданы методу where() запроса
  • sort: Направление, в котором должны быть возвращены записи
  • fields: Список полей для выбора из целевой таблицы
  • contain: Список связанных таблиц, которые нужно жадно загрузить, связанных с целевой таблицей
  • strategy: Название стратегии, которую нужно использовать для поиска записей целевой таблицы
  • nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки

Параметры

array<string, mixed> $options

Возвращает

Closure

exists() public

exists(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): bool

Делегирует операцию методу exists целевой таблицы после добавления стандартных условий для этой ассоциации

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions

Условия, используемые для проверки наличия соответствующей записи.

Возвращает

bool

См. также

\Cake\ORM\Table::exists()

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`.

См. также

\Cake\ORM\TableLocator::get()

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

См. также

\Cake\ORM\Table::find()

getBindingKey() public

getBindingKey(): array<string>|string

Получает имя поля, представляющего поле привязки к целевой таблице. Если не указано вручную, используется первичный ключ таблицы-владельца.

Возвращает

array<string>|string

getCascadeCallbacks() public

getCascadeCallbacks(): bool

Получает, следует ли при каскадном удалении также запускать обратные вызовы.

Возвращает

bool

getClassName() public

getClassName(): string

Получает имя класса объекта целевой таблицы.

Возвращает

string

getConditions() public

getConditions(): Closure|array

Получает список условий, которые всегда должны включаться при извлечении записей из целевого объединения.

Возвращает

Closure|array

См. также

\Cake\Database\Query::where() для примеров формата массива

getDependent() public

getDependent(): bool

Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.

Это в первую очередь используется для указания того, что записи должны быть удалены, если запись-владелец в исходной таблице удалена.

Возвращает

bool

getFinder() public

getFinder(): array|string

Получает используемый по умолчанию поиск для извлечения строк из целевой таблицы.

Возвращает

array|string

getForeignKey() public

getForeignKey(): array<string>|string

Получает имя поля, представляющего внешний ключ к исходной таблице.

Возвращает

array<string>|string

getJoinType() public

getJoinType(): string

Получает тип соединения, который будет использоваться при добавлении объединения в запрос.

Возвращает

string

getName() public

getName(): string

Получает имя для этого объединения, обычно псевдоним, назначенный целевой связанной таблице

Возвращает

string

getProperty() public

getProperty(): string

Получает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.

Возвращает

string

getSaveStrategy() public

getSaveStrategy(): string

Получает стратегию, которая должна использоваться для сохранения.

Возвращает

string

getSort() public

getSort(): mixed

Получает порядок сортировки, в котором должны возвращаться целевые записи.

Возвращает

mixed

getSource() public

getSource(): Cake\ORM\Table

Получает экземпляр таблицы для стороны источника объединения.

Возвращает

Cake\ORM\Table

getStrategy() public

getStrategy(): string

Получает имя стратегии, которое должно использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы объединений могут не реализовывать, но использовать по умолчанию стратегию, делая любые изменения в этом параметре недействительными.

Возвращает

string

getTableLocator() public

getTableLocator(): Cake\ORM\Locator\LocatorInterface

Получает локатор таблицы.

Возвращает

Cake\ORM\Locator\LocatorInterface

getTarget() public

getTarget(): Cake\ORM\Table

Получает экземпляр таблицы для целевой стороны объединения.

Возвращает

Cake\ORM\Table

getTargetForeignKey() public

getTargetForeignKey(): array<string>|string

Получает имя поля, представляющего внешний ключ для целевой таблицы.

Возвращает

array<string>|string

getThrough() public

getThrough(): Cake\ORM\Table|string

Получает текущую таблицу соединения, либо имя экземпляра таблицы, либо сам экземпляр.

Возвращает

Cake\ORM\Table|string

isOwningSide() public

isOwningSide(Cake\ORM\Table $side): bool

Возвращает boolean true, так как обе таблицы «владеют» строками на другой стороне ассоциации через таблицу соединения.

Параметры

Cake\ORM\Table $side

Возможная таблица с правом владения

Возвращает

bool

junction() 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

Возвращает отфильтрованные условия, которые конкретно ссылаются на таблицу соединения.

Возвращает

array

link() 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 необязательный

Параметры, содержащие стратегию, которая будет использоваться.

Возвращает

bool

saveAssociated() 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\Table::save()
\Cake\ORM\Association\BelongsToMany::replaceLinks()

setBindingKey() public

setBindingKey(array<string>|string $key): $this

Устанавливает имя поля, представляющего поле привязки к целевой таблице. Если не указано вручную, используется первичный ключ таблицы владельца.

Параметры

array<string>|string $key

поле или поля таблицы, используемые для связи обеих таблиц

Возвращает

$this

setCascadeCallbacks() public

setCascadeCallbacks(bool $cascadeCallbacks): $this

Устанавливает, следует ли также запускать обратные вызовы при каскадном удалении.

Параметры

bool $cascadeCallbacks

значение переключателя каскадных обратных вызовов

Возвращает

$this

setClassName() public

setClassName(string $className): $this

Устанавливает имя класса объекта целевой таблицы.

Параметры

string $className

Имя класса для установки.

Возвращает

$this

Исключения

InvalidArgumentException
В случае, если имя класса установлено после того, как целевая таблица была разрешена, и оно не соответствует имени класса целевой таблицы.

setConditions() public

setConditions(Closure|array $conditions): $this

Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации.

Параметры

Closure|array $conditions

Возвращает

$this

setDependent() public

setDependent(bool $dependent): $this

Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.

Это в первую очередь используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.

Если параметры не переданы, возвращается текущее значение.

Параметры

bool $dependent

Установите режим зависимости. Используйте null для считывания текущего состояния.

Возвращает

$this

setFinder() public

setFinder(array|string $finder): $this

Устанавливает по умолчанию поиск для извлечения строк из целевой таблицы.

Параметры

array|string $finder

имя используемого поиска или массив из имени поиска и параметра.

Возвращает

$this

setForeignKey() public

setForeignKey(array<string>|string $key): $this

Устанавливает имя поля, представляющего внешний ключ к целевой таблице.

Параметры

array<string>|string $key

ключ или ключи, используемые для связывания обеих таблиц вместе

Возвращает

$this

setJoinType() public

setJoinType(string $type): $this

Устанавливает тип соединения, который будет использоваться при добавлении ассоциации к запросу.

Параметры

string $type

тип соединения (например, INNER)

Возвращает

$this

setName() public

setName(string $name): $this

Устанавливает имя для этой ассоциации, обычно псевдоним, назначенный целевой связанной таблице

Параметры

string $name

Назначаемое имя

Возвращает

$this

setProperty() public

setProperty(string $name): $this

Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.

Параметры

string $name

Имя свойства ассоциации. Используйте null для чтения текущего значения.

Возвращает

$this

setSaveStrategy() public

setSaveStrategy(string $strategy): $this

Устанавливает стратегию, которая должна использоваться для сохранения.

Параметры

string $strategy

название используемой стратегии

Возвращает

$this

Выбрасывает

InvalidArgumentException
если передано недопустимое имя стратегии

setSort() public

setSort(mixed $sort): $this

Устанавливает порядок сортировки, в котором должны возвращаться целевые записи.

Параметры

mixed $sort

Оператор сортировки, совместимый с find()

Возвращает

$this

setSource() public

setSource(Cake\ORM\Table $table): $this

Устанавливает экземпляр таблицы для стороны источника ассоциации.

Параметры

Cake\ORM\Table $table

экземпляр, который следует назначить как сторону источника

Возвращает

$this

setStrategy() 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.

Возвращает

$this

setTarget() public

setTarget(Cake\ORM\Table $table): $this

Устанавливает экземпляр таблицы для целевой стороны ассоциации.

Параметры

Cake\ORM\Table $table

экземпляр, который будет назначен в качестве целевой стороны

Возвращает

$this

setTargetForeignKey() public

setTargetForeignKey(array<string>|string $key): $this

Устанавливает имя поля, представляющего внешний ключ целевой таблицы.

Параметры

array<string>|string $key

ключ, используемый для связывания обеих таблиц

Возвращает

$this

setThrough() public

setThrough(Cake\ORM\Table|string $through): $this

Устанавливает текущую таблицу соединения, либо имя экземпляра таблицы, либо сам экземпляр.

Параметры

Cake\ORM\Table|string $through

Имя экземпляра таблицы или сам экземпляр.

Возвращает

$this

targetConditions() protected

targetConditions(): arrayClosure|null

Возвращает отфильтрованные условия, которые ссылаются на целевую таблицу.

Любые строковые выражения или объекты выражений также будут возвращены в этом списке.

Возвращает

arrayClosure|null

transformRow() public

transformRow(array $row, string $nestKey, bool $joined, string|null $targetProperty = null): array

Правильно вложены значения строки результата в соответствующие ключи массива внутри исходных результатов.

Параметры

array $row

Строка для преобразования

string $nestKey

Ключ массива, в котором должны быть найдены результаты этой ассоциации

bool $joined

Является ли строка результатом прямого соединения с этой ассоциацией

string|null $targetProperty optional

Имя свойства в исходных результатах, где должны быть вложены данные ассоциации. Будет использовано значение по умолчанию, если не указано.

Возвращает

array

type() public

type(): string

Получить тип отношения.

Возвращает

string

unlink() 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

См. также

\Cake\ORM\Table::updateAll()

Подробное описание свойства

$_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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API