Spec-Zone.ru › CakePHP 4.2

Класс 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
    string|string[]|null

    Имя поля в таблице владельца, используемого для сопоставления с foreignKey

  • $_cascadeCallbacks protected
    bool

    Включать или нет вызов колбэков при каскадном удалении.

  • $_className protected
    string

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

  • $_conditions protected
    arrayClosure

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

  • $_dependent protected
    bool

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

  • $_finder protected
    string|array

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

  • $_foreignKey protected
    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
    string|string[]|null

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

  • $_targetTable protected
    Cake\ORM\Table

    Экземпляр целевой таблицы

  • $_through protected
    stringCake\ORM\Table

    Экземпляр таблицы для связи.

  • $_validStrategies protected
    string[]

    Допустимые стратегии для этого типа ассоциации

Краткое описание методов

  • __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

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

  • exists() public

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

  • 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

    Возвращает логическое значение 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

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

  • setProperty() public

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

  • setSaveStrategy() public

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

  • setSort() public

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

  • setSource() public

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

  • setStrategy() public

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

  • setTableLocator() public

    Устанавливает локатор таблицы.

  • setTarget() public

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

  • setTargetForeignKey() public

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

  • setThrough() public

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

  • targetConditions() protected

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

  • transformRow() public

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

  • type() public

    Получить тип связи.

  • unlink() public

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

  • updateAll() public

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

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

__call() public

__call(string $method, array $argument): mixed

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

Parameters

string $method

имя вызываемого метода

array $argument

Список аргументов, переданных в функцию

Returns

mixed

Throws

BadMethodCallException

__construct() public

__construct(string $alias, array $options = [])

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

Parameters

string $alias

Имя, данное ассоциации

array $options optional

Список свойств, которые должны быть установлены для этого объекта

__get() public

__get(string $property): Cake\ORM\Association

Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации

Parameters

string $property

имя свойства

Returns

Cake\ORM\Association

Throws

RuntimeException
if no association with such name exists

__isset() public

__isset(string $property): bool

Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, имеет ли целевая таблица другую ассоциацию с переданным именем

Parameters

string $property

имя свойства

Returns

bool

_appendFields() protected

_appendFields(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array $options): void

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

Parameters

Cake\ORM\Query $query

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

Cake\ORM\Query $surrogate

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

array $options

параметры, переданные методу attachTo

Returns

void

_appendJunctionJoin() protected

_appendJunctionJoin(Cake\ORM\Query $query, array|null $conditions = null): Cake\ORM\Query

Добавить соединение с соединительной таблицей.

Parameters

Cake\ORM\Query $query

Запрос для добавления.

array|null $conditions optional

Условия запроса для использования.

Returns

Cake\ORM\Query

_appendNotMatching() protected

_appendNotMatching(Cake\ORM\Query $query, array $options): void

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

Parameters

Cake\ORM\Query $query
array $options

Returns

void

_bindNewAssociations() protected

_bindNewAssociations(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array $options): void

Применяет все присоединяемые ассоциации к $query из содержащихся элементов, найденных в запросе $surrogate.

Копирует все содержащиеся ассоциации из запроса $surrogate в переданный $query. Содержащиеся элементы изменяются таким образом, чтобы они соответствовали цепочке ассоциаций, из которой они произошли.

Parameters

Cake\ORM\Query $query

запрос, к которому будут прикреплены ассоциации

Cake\ORM\Query $surrogate

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

array $options

параметры, переданные методу attachTo

Returns

void

_camelize() protected

_camelize(string $name): string

Создает версию $name в стиле camelCase

Parameters

string $name

имя

Returns

string

_checkPersistenceStatus() protected

_checkPersistenceStatus(Cake\Datasource\EntityInterface $sourceEntity, Cake\Datasource\EntityInterface[] $targetEntities): bool

Выдает исключение, если любой из переданных объектов не сохранен.

Parameters

Cake\Datasource\EntityInterface $sourceEntity

строка, принадлежащая source стороне этой ассоциации

Cake\Datasource\EntityInterface[] $targetEntities

список объектов, принадлежащих target стороне этой ассоциации

Returns

bool

Throws

InvalidArgumentException

_collectJointEntities() protected

_collectJointEntities(Cake\Datasource\EntityInterface $sourceEntity, array $targetEntities): Cake\Datasource\EntityInterface[]

Возвращает список объединенных объектов, которые существуют между исходным объектом и каждым из переданных целевых объектов

Parameters

Cake\Datasource\EntityInterface $sourceEntity

Строка, принадлежащая исходной стороне этой ассоциации.

array $targetEntities

Строки, принадлежащие целевой стороне этой ассоциации.

Returns

Cake\Datasource\EntityInterface[]

Throws

InvalidArgumentException
if any of the entities is lacking a primary key value

_diffLinks() protected

_diffLinks(Cake\ORM\Query $existing, Cake\Datasource\EntityInterface[] $jointEntities, array $targetEntities, array $options = []): array|false

Вспомогательный метод, используемый для удаления разницы между ссылками, переданными в $existing и $jointEntities. Этот метод вернет значения из $targetEntities, которые не были удалены при вычислении разницы.

Parameters

Cake\ORM\Query $existing

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

Cake\Datasource\EntityInterface[] $jointEntities

объекты ссылок, которые должны быть сохранены

array $targetEntities

объекты в целевой таблице, которые связаны с $jointEntities

array $options optional

список параметров, принимаемых Table::delete()

Returns

array|false

_dispatchBeforeFind() protected

_dispatchBeforeFind(Cake\ORM\Query $query): void

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

Parameters

Cake\ORM\Query $query

запрос, к которому эта ассоциация прикрепляет себя

Returns

void

_entityName() protected

_entityName(string $name): string

Создает правильное имя сущности (единственное число) для указанного имени

Parameters

string $name

Имя

Returns

string

_extractFinder() protected

_extractFinder(string|array $finderData): array

Вспомогательный метод для вывода запрошенного поиска и его параметров.

Возвращает выведенные параметры из поиска $type.

Examples:

Следующее вызовет поиск 'translations' со значением поиска в качестве его параметров: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);

Parameters

string|array $finderData

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

Returns

array

_fixtureName() protected

_fixtureName(string $name): string

Создает имя фикстуры

Parameters

string $name

Имя класса модели

Returns

string

_formatAssociationResults() protected

_formatAssociationResults(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array $options): void

Добавляет функцию форматирования к переданному $query в случае, если $surrogate запрос объявляет какой-либо другой форматировщик. Поскольку $surrogate запрос соответствует связанной целевой таблице, результирующий форматировщик будет результатом применения форматировщиков-заменителей только к свойству, соответствующему данной таблице.

Параметры

Cake\ORM\Query $query

запрос, к которому будет применено форматирование

Cake\ORM\Query $surrogate

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

array $options

параметры, переданные методу attachTo

Возвращает

void

_generateJunctionAssociations() protected

_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

Генерирует дополнительные ассоциации таблицы источника по необходимости.

Генерируются следующие ассоциации:

  • источник имеет много таблиц соединения, например, Tags имеет много ArticlesTags

Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.

Параметры

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

Генерирует взаимообратные ассоциации по необходимости.

Генерируются следующие ассоциации:

  • цель имеет много таблиц соединения, например, Articles имеет много ArticlesTags
  • цель имеет много ко многим источнику, например, Articles имеет много ко многим Tags.

Вы можете переопределить эти сгенерированные ассоциации, определив ассоциации с правильными псевдонимами.

Параметры

Cake\ORM\Table $junction

Таблица соединения.

Cake\ORM\Table $source

Источник таблицы.

Cake\ORM\Table $target

Целевая таблица.

Возвращает

void

_joinCondition() protected

_joinCondition(array $options): array

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

Параметры

array $options

список параметров, переданных методу attachTo

Возвращает

array

_junctionAssociationName() protected

_junctionAssociationName(): string

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

Возвращает

string

_junctionTableName() protected

_junctionTableName(string|null $name = null): string

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

Параметры

string|null $name optional

Имя таблицы соединения.

Возвращает

string

_modelKey() protected

_modelKey(string $name): string

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

Если входные данные содержат точку, предполагается, что правая сторона является фактическим именем таблицы.

Параметры

string $name

Имя класса модели

Возвращает

string

_modelNameFromKey() protected

_modelNameFromKey(string $key): string

Создает правильное имя модели из внешнего ключа.

Параметры

string $key

Внешний ключ

Возвращает

string

_options() protected

_options(array $options): void

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

Параметры

array $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, Cake\Datasource\EntityInterface[] $targetEntities, array $options): bool

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

Параметры

Cake\Datasource\EntityInterface $sourceEntity

сущность из таблицы источника в этой ассоциации

Cake\Datasource\EntityInterface[] $targetEntities

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

array $options

список параметров, принимаемых Table::save()

Возвращает

bool

_saveTarget() protected

_saveTarget(Cake\Datasource\EntityInterface $parentEntity, array $entities, array $options): Cake\Datasource\EntityInterface|false

Сохраняет каждую из сущностей в целевой таблице и создаёт связи между родительской сущностью и каждой сохранённой сущностью цели.

Параметры

Cake\Datasource\EntityInterface $parentEntity

сущность источника, содержащая сущности цели, которые нужно сохранить.

array $entities

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

array $options

список параметров, принимаемых Table::save()

Возвращает

Cake\Datasource\EntityInterface|false

Выбрасывает

InvalidArgumentException
если свойство, представляющее ассоциацию в родительской сущности, невозможно пройти

_singularHumanName() protected

_singularHumanName(string $name): string

Создаёт единственное имя, используемое в представлениях.

Параметры

string $name

Имя контроллера

Возвращает

string

_singularName() protected

_singularName(string $name): string

Создаёт единственное имя для использования в представлениях.

Параметры

string $name

Используемое имя

Возвращает

string

_variableName() protected

_variableName(string $name): string

Создаёт множественное имя переменной для представлений.

Параметры

string $name

Используемое имя

Возвращает

string

attachTo() public

attachTo(Cake\ORM\Query $query, array $options = []): void

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

Массив параметров может содержать следующие ключи:

  • includeFields: Включать ли поля целевой модели в результат
  • foreignKey: Имя поля, используемого в качестве внешнего ключа. Если false, внешний ключ не используется.
  • conditions: Массив с условиями фильтрации для объединения
  • fields: Список полей в целевой таблице, которые нужно включить в результат
  • type: Тип объединения (например, INNER)

Параметры

Cake\ORM\Query $query

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

array $options optional

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

Возвращает

void

canBeJoined() public

canBeJoined(array $options = []): bool

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

Параметры

array $options optional

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

Возвращает

bool

cascadeDelete() public

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

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

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

Параметры

Cake\Datasource\EntityInterface $entity

Объект, который инициировал каскадное удаление.

array $options optional

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

Возвращает

bool

defaultRowValue() public

defaultRowValue(array $row, bool $joined): array

Возвращает изменённую строку после добавления свойства для этой ассоциации со значением по умолчанию в соответствии с тем, была ли ассоциация объединена или получена внешне.

Параметры

array $row
bool $joined

Возвращает

array

deleteAll() public

deleteAll(mixed $conditions): int

Делегирует операцию удаления методу deleteAll целевой таблицы.

Параметры

mixed $conditions

Условия, принимающие любые значения, которые может принять Query::where().

Возвращает

int

См. также

\Cake\ORM\Table::deleteAll()

eagerLoader() public

eagerLoader(array $options): Closure

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

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

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

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

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

Параметры

array $options

Возвращает

Closure

exists() public

exists(arrayClosureCake\Database\ExpressionInterface $conditions): bool

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

Параметры

arrayClosureCake\Database\ExpressionInterface $conditions

Условия для проверки соответствия какой-либо записи.

Возвращает

bool

См. также

\Cake\ORM\Table::exists()

find() public

find(string|array|null $type = null, array $options = []): Cake\ORM\Query

Делегирует операцию поиска методу find целевой таблицы и соответственно изменяет запрос на основе конфигурации этой ассоциации.

Если ваша ассоциация включает условия или поиск, таблица соединения будет включена в связанные ассоциации запроса.

Параметры

string|array|null $type optional

Тип запроса, если передано массив, он будет интерпретирован как параметр $options

array $options optional

Параметры для поиска

Возвращает

Cake\ORM\Query

См. также

\Cake\ORM\Table::find()

getBindingKey() public

getBindingKey(): string|string[]

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

Возвращает

string|string[]

getCascadeCallbacks() public

getCascadeCallbacks(): bool

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

Возвращает

bool

getClassName() public

getClassName(): string

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

Возвращает

string

getConditions() public

getConditions(): arrayClosure

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

Возвращает

arrayClosure

См. также

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

getDependent() public

getDependent(): bool

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

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

Возвращает

bool

getFinder() public

getFinder(): string|array

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

Возвращает

string|array

getForeignKey() public

getForeignKey(): string|string[]

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

Возвращает

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(): string|string[]

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

Возвращает

string|string[]

getThrough() public

getThrough(): stringCake\ORM\Table

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

Возвращает

stringCake\ORM\Table

isOwningSide() public

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

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

Параметры

Cake\ORM\Table $side

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

Возвращает

bool

junction() public

junction(stringCake\ORM\Table|null $table = null): Cake\ORM\Table

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

Параметры

stringCake\ORM\Table|null $table optional

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

Возвращает

Cake\ORM\Table

Исключения

InvalidArgumentException
В случае несовместимости ожидаемых ассоциаций с существующими ассоциациями.

junctionConditions() protected

junctionConditions(): array

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

Возвращает

array

link() public

link(Cake\Datasource\EntityInterface $sourceEntity, Cake\Datasource\EntityInterface[] $targetEntities, array $options = []): bool

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

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

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

Пример:

$newTags = $tags->find('relevant')->toArray();
$articles->getAssociation('tags')->link($article, $newTags);

$article->get('tags') будет содержать все теги из $newTags после связывания

Параметры

Cake\Datasource\EntityInterface $sourceEntity

строка, принадлежащая стороне source этой ассоциации

Cake\Datasource\EntityInterface[] $targetEntities

список сущностей, принадлежащих стороне target этой ассоциации

array $options optional

список параметров, передаваемых в вызов save

Возвращает

bool

Исключения

InvalidArgumentException
при обнаружении любого из значений в $targetEntities, которые не были сохранены

replaceLinks() public

replaceLinks(Cake\Datasource\EntityInterface $sourceEntity, array $targetEntities, array $options = []): bool

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

Например, если статья связана с тегами «кекс» и «фреймворк», и вы передаете в этот метод массив, содержащий сущности для тегов «кекс», «php» и «отлично», то только ссылка для «кекс» будет сохранена в базе данных, ссылка для «фреймворк» будет удалена, а ссылки для «php» и «отлично» будут созданы.

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

При успешном выполнении переданное $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 $options optional

список параметров, которые будут переданы в внутренние вызовы save/delete при сохранении/обновлении новых ссылок или удалении существующих

Возвращает

bool

Исключения

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

requiresKeys() public

requiresKeys(array $options = []): bool

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

Параметры

array $options optional

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

Возвращает

bool

saveAssociated() public

saveAssociated(Cake\Datasource\EntityInterface $entity, array $options = []): Cake\Datasource\EntityInterface|false

Берёт сущность из исходной таблицы и проверяет, есть ли поле, соответствующее имени свойства для этой ассоциации. Найденная сущность будет сохранена в целевой таблице для этой ассоциации путём передачи предоставленного $options

При использовании стратегии 'append' эта функция будет создавать только новые связи между каждой стороной этой ассоциации. Она не будет уничтожать существующие, даже если они могут отсутствовать в массиве сущностей, которые нужно сохранить.

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

Параметры

Cake\Datasource\EntityInterface $entity

сущность из исходной таблицы

array $options optional

параметры, которые будут переданы методу save в целевой таблице

Возвращает

Cake\Datasource\EntityInterface|false

Исключения

InvalidArgumentException
если свойство, представляющее ассоциацию в родительской сущности, невозможно пройти

См. также

\Cake\ORM\Table::save()
\Cake\ORM\Association\BelongsToMany::replaceLinks()

setBindingKey() public

setBindingKey(string|string[] $key): $this

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

Параметры

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(arrayClosure $conditions): Cake\ORM\Association

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

Параметры

arrayClosure $conditions

Возвращает

Cake\ORM\Association

setDependent() public

setDependent(bool $dependent): $this

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

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

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

Параметры

bool $dependent

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

Возвращает

$this

setFinder() public

setFinder(string|array $finder): $this

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

Параметры

string|array $finder

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

Возвращает

$this

setForeignKey() public

setForeignKey(string|string[] $key): $this

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

Параметры

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

Условие order, совместимое с 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(string|string[] $key): $this

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

Параметры

string|string[] $key

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

Возвращает

$this

setThrough() public

setThrough(stringCake\ORM\Table $through): $this

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

Параметры

stringCake\ORM\Table $through

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

Возвращает

$this

targetConditions() protected

targetConditions(): mixed

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

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

Возвращает

mixed

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, Cake\Datasource\EntityInterface[] $targetEntities, array|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

Сущность, сохраненная в исходной таблице для этой ассоциации.

Cake\Datasource\EntityInterface[] $targetEntities

Список сущностей, сохраненных в целевой таблице для этой ассоциации.

array|bool $options optional

Список параметров, которые необходимо передать в внутренний delete вызов или boolean в качестве сокращения ключа cleanProperty.

Возвращает

bool

Исключения

InvalidArgumentException
Если переданы несохраненные сущности или если у какой-либо из них отсутствует значение первичного ключа.

updateAll() public

updateAll(array $fields, mixed $conditions): int

Делегирует операцию обновления методу updateAll целевой таблицы.

Параметры

array $fields

Хэш поле => новое значение.

mixed $conditions

Условия, принимающие все, что может принять Query::where().

Возвращает

int

См. также

\Cake\ORM\Table::updateAll()

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

$_bindingKey protected

Имя поля в таблице со стороны владельца, которое используется для сопоставления с foreignKey

Тип

string|string[]|null

$_cascadeCallbacks protected

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

Тип

bool

$_className protected

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

Тип

string

$_conditions protected

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

Тип

arrayClosure

$_dependent protected

Следует ли удалять записи в таблице соединения при удалении записи в таблице источника.

По умолчанию установлено в true для обратной совместимости.

Тип

bool

$_finder protected

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

Тип

string|array

$_foreignKey protected

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

Тип

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

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

Тип

string|string[]|null

$_targetTable protected

Экземпляр целевой таблицы

Тип

Cake\ORM\Table

$_through protected

Экземпляр таблицы для отношения соединения.

Тип

stringCake\ORM\Table

$_validStrategies protected

Допустимые стратегии для этого типа ассоциации

Тип

string[]

© 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.2/class-Cake.ORM.Association.BelongsToMany.html

Spec-Zone.ru

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