Класс Association
Association — это связь, устанавливаемая между двумя таблицами, и используется для настройки и кастомизации способа извлечения взаимосвязанных записей.
Константы
-
stringMANY_TO_MANY'manyToMany'
Тип связи для много-ко-многим ассоциаций.
-
stringMANY_TO_ONE'manyToOne'
Тип связи для много-к-одному ассоциаций.
-
stringONE_TO_MANY'oneToMany'
Тип связи для один-ко-многим ассоциаций.
-
stringONE_TO_ONE'oneToOne'
Тип связи для один-к-одному ассоциаций.
-
stringSTRATEGY_JOIN'join'
Имя стратегии для использования соединений при извлечении связанных записей
-
stringSTRATEGY_SELECT'select'
Имя стратегии для использования select при извлечении связанных записей
-
stringSTRATEGY_SUBQUERY'subquery'
Имя стратегии для использования подзапроса при извлечении связанных записей
Краткое описание свойств
- $_bindingKey protected
array<string>|string|nullИмя поля в таблице владельца, которое используется для сопоставления с foreignKey
- $_cascadeCallbacks protected
boolСледует ли каскадным удалениям также вызывать коллбэки.
- $_className protected
stringИмя класса объекта целевой таблицы
- $_conditions protected
Closure|arrayСписок условий, которые всегда должны включаться при извлечении записей из целевой ассоциации
- $_dependent protected
boolЗависят ли записи в целевой таблице от исходной таблицы, часто используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
- $_finder protected
array|stringИмя findera по умолчанию, используемое для извлечения строк из целевой таблицы. С массивом значений разрешены имя findera и параметры по умолчанию.
- $_foreignKey protected
array<string>|stringИмя поля, представляющего внешний ключ к загружаемой таблице
- $_joinType protected
stringТип соединения, который будет использоваться при добавлении ассоциации к запросу
- $_name protected
stringИмя, данное ассоциации, обычно представляет псевдоним, назначенный целевой связанной таблице
- $_propertyName protected
stringИмя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
- $_sourceTable protected
Cake\ORM\TableЭкземпляр исходной таблицы
- $_strategy protected
stringИмя стратегии, которая будет использоваться для извлечения связанных записей. Некоторые типы ассоциаций могут реализовывать только одну стратегию для извлечения записей.
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локатора таблиц
- $_targetTable protected
Cake\ORM\TableЭкземпляр целевой таблицы
- $_validStrategies protected
array<string>Допустимые стратегии для этой ассоциации. Подклассы могут сузить этот список.
- $defaultTable protected
string|nullПсевдоним таблицы по умолчанию для этого объекта.
Краткое описание методов
-
__call() public
Перенаправляет вызовы методов на целевую таблицу.
-
__construct() public
Конструктор. Подклассы могут переопределить функцию _options, чтобы получить исходный список переданных параметров, если ожидают какой-либо другой специальный ключ
-
__get() public
Перенаправляет получение свойства на целевую таблицу. Это удобно для получения связанных ассоциаций этой ассоциации
-
__isset() public
Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, имеет ли целевая таблица другую ассоциацию с переданным именем
-
_appendFields() protected
Вспомогательная функция, используемая для условного добавления полей в предложение select запроса из полей, найденных в другом объекте запроса.
-
_appendNotMatching() protected
Условно добавляет условие в переданный запрос Query, который будет искать записи, где нет совпадений с этой ассоциацией.
-
_bindNewAssociations() protected
Применяет все прикрепляемые ассоциации к
$queryиз содержащихся в запросе$surrogate. -
_camelize() protected
Создает версию $name в стиле camelCase
-
_dispatchBeforeFind() protected
Вызывает beforeFind в целевой таблице для запроса, к которому прикрепляется эта ассоциация
-
_entityName() protected
Создает правильное имя сущности (единственное число) для указанного имени
-
_extractFinder() protected
Вспомогательный метод для вывода запрошенного findera и его параметров.
-
_fixtureName() protected
Создает имя фикстуры
-
_formatAssociationResults() protected
Добавляет функцию форматирования к переданному
$query, если запрос$surrogateобъявляет какой-либо другой форматтер. Поскольку запрос$surrogateсоответствует связанной целевой таблице, результирующий форматтер будет результатом применения суррогатных форматтеров только к свойству, соответствующему такой таблице. -
_joinCondition() protected
Возвращает одно или несколько условий, которые нужно добавить к сгенерированному предложению join для получения результатов в целевой таблице.
-
_modelKey() protected
Создает правильный ключ модели с подчеркиваниями для ассоциаций
-
_modelNameFromKey() protected
Создает правильное имя модели из внешнего ключа
-
_options() protected
Переопределите эту функцию для инициализации любого конкретного класса ассоциации, ей будет передан исходный список параметров, используемых в конструкторе
-
_pluginNamespace() protected
Возвращает пространство имен плагина
-
_pluginPath() protected
Находит правильный путь для плагина. Сканирует $pluginPaths для нужного плагина.
-
_pluralHumanName() protected
Создает множественное имя, используемое в представлениях
-
_propertyName() protected
Возвращает имя свойства по умолчанию на основе имени ассоциации.
-
_singularHumanName() protected
Создает единственное имя, используемое в представлениях
-
_singularName() protected
Создает единственное имя для использования в представлениях.
-
_variableName() protected
Создает множественное имя переменной для представлений
-
attachTo() public
Изменяет объект Query, чтобы включить данные связанной целевой таблицы в окончательный результат
-
canBeJoined() public
Можно ли напрямую выразить эту ассоциацию в соединении запроса
-
cascadeDelete() abstract public
Обрабатывает каскадное удаление из связанной модели.
-
defaultRowValue() public
Возвращает измененную строку после добавления свойства для этой ассоциации со значением пустого по умолчанию в зависимости от того, была ли ассоциация присоединена или получена извне.
-
deleteAll() public
Перенаправляет операцию удаления на метод deleteAll целевой таблицы
-
eagerLoader() abstract public
Жадная загрузка списка записей в целевой таблице, которые связаны с другим набором записей в исходной таблице. Исходные записи могут быть указаны двумя способами: первый - путем передачи объекта Query, настроенного для поиска в исходной таблице, а второй - путем явной передачи массива значений первичных ключей из исходной таблицы.
-
exists() public
Перенаправляет операцию на метод exists целевой таблицы после добавления условий по умолчанию для этой ассоциации
-
fetchTable() public
Удобный метод для получения экземпляра таблицы.
-
find() public
Перенаправляет операцию поиска на метод find целевой таблицы и изменяет запрос в соответствии с конфигурацией этой ассоциации
-
getBindingKey() public
Возвращает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
-
getCascadeCallbacks() public
Возвращает, следует ли также вызывать обратные вызовы при каскадном удалении.
-
getClassName() public
Возвращает имя класса объекта целевой таблицы.
-
getConditions() public
Возвращает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации.
-
getDependent() public
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
-
getFinder() public
Возвращает finder по умолчанию для извлечения строк из целевой таблицы.
-
getForeignKey() public
Возвращает имя поля, представляющего внешний ключ к целевой таблице.
-
getJoinType() public
Возвращает тип соединения, которое будет использоваться при добавлении ассоциации к запросу.
-
getName() public
Получает имя для этой ассоциации, обычно псевдоним, назначенный целевой связанной таблице
-
getProperty() public
Получает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
-
getSource() public
Получает экземпляр таблицы для исходной стороны ассоциации.
-
getStrategy() public
Получает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, а только стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
-
getTableLocator() public
Получает локатор таблицы.
-
getTarget() public
Получает экземпляр таблицы для целевой стороны ассоциации.
-
isOwningSide() abstract public
Возвращает, является ли переданная таблица владеющей стороной для этой ассоциации. Это означает, что строки в таблице «цель» будут пропускать важную или необходимую информацию, если строка в «источнике» не существовала.
-
requiresKeys() public
Возвращает true, если процесс загрузки eager потребует набор связующих ключей владеющей таблицы, чтобы использовать их в качестве фильтра в запросе findera.
-
saveAssociated() abstract public
Извлекает данные ассоциации цели из переданной сущности и передает операцию сохранения в целевую таблицу.
-
setBindingKey() public
Устанавливает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владеющей стороны.
-
setCascadeCallbacks() public
Устанавливает, должны ли каскадные удаления также запускать обратные вызовы.
-
setClassName() public
Устанавливает имя класса объекта целевой таблицы.
-
setConditions() public
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации.
-
setDependent() public
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
-
setFinder() public
Устанавливает finder по умолчанию для извлечения строк из целевой таблицы.
-
setForeignKey() public
Устанавливает имя поля, представляющего внешний ключ к целевой таблице.
-
setJoinType() public
Устанавливает тип соединения, который будет использоваться при добавлении ассоциации к запросу.
-
setName() public deprecated
Устанавливает имя для этой ассоциации, обычно псевдоним, назначенный целевой связанной таблице
-
setProperty() public
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
-
setSource() public
Устанавливает экземпляр таблицы для исходной стороны ассоциации.
-
setStrategy() public
Устанавливает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы ассоциаций могут не реализовывать, а только стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
-
setTableLocator() public
Устанавливает локатор таблицы.
-
setTarget() public
Устанавливает экземпляр таблицы для целевой стороны ассоциации.
-
transformRow() public
Правильно вкладывает связанные значения строки результата в правильные ключи массива внутри результатов источника.
-
type() abstract public
Получить тип связи.
-
updateAll() public
Передает операцию обновления методу updateAll целевой таблицы
Подробное описание методов
__call() public
__call(string $method, array $argument): mixed
Перенаправляет вызовы методов на целевую таблицу.
Параметры
-
string$method имя вызываемого метода
-
array$argument Список аргументов, переданных в функцию
Возвращаемое значение
mixedИсключения
BadMethodCallException__construct() public
__construct(string $alias, array<string, mixed> $options = [])
Конструктор. Подклассы могут переопределить функцию _options, чтобы получить исходный список переданных параметров, если ожидается какой-либо другой специальный ключ
Параметры
-
string$alias Имя, данное ассоциации
-
array<string, mixed>$options optional Список свойств, которые должны быть установлены для этого объекта
__get() public
__get(string $property): Cake\ORM\Association
Перенаправляет получение свойства на целевую таблицу. Это удобно для получения ассоциаций этой ассоциации
Параметры
-
string$property имя свойства
Возвращаемое значение
Cake\ORM\AssociationИсключения
RuntimeExceptionif no association with such name exists
__isset() public
__isset(string $property): bool
Перенаправляет вызов isset на целевую таблицу. Это удобно для проверки, есть ли у целевой таблицы другая ассоциация с переданным именем
Параметры
-
string$property имя свойства
Возвращаемое значение
bool_appendFields() protected
_appendFields(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Вспомогательная функция, используемая для условного добавления полей в предложение select запроса из полей, найденных в другом объекте запроса.
Параметры
-
Cake\ORM\Query$query запрос, к которому будут добавлены поля
-
Cake\ORM\Query$surrogate запрос, содержащий поля, которые необходимо скопировать
-
array<string, mixed>$options параметры, переданные методу
attachTo
Возвращаемое значение
void_appendNotMatching() protected
_appendNotMatching(Cake\ORM\Query $query, array<string, mixed> $options): void
Условно добавляет условие к переданному запросу Query, которое заставит его находить записи, где нет совпадения с этой ассоциацией.
Параметры
-
Cake\ORM\Query$query Запрос для изменения
-
array<string, mixed>$options Массив параметров, содержащий ключ
negateMatch.
Возвращаемое значение
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_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
Вспомогательный метод для вывода запрошенного findera и его параметров.
Возвращает выведенные параметры из findera $type.
Примеры:
Следующий код вызовет finder 'translations' со значением findera в качестве его параметров: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);
Параметры
-
array|string$finderData Имя findera или массив, содержащий имя в качестве ключа и параметры в качестве значения.
Возвращаемое значение
array_fixtureName() protected
_fixtureName(string $name): string
Создает имя фикстуры
Параметры
-
string$name Имя класса модели
Возвращаемое значение
string_formatAssociationResults() protected
_formatAssociationResults(Cake\ORM\Query $query, Cake\ORM\Query $surrogate, array<string, mixed> $options): void
Добавляет функцию форматирования к переданному $query, если запрос $surrogate объявляет другую функцию форматирования. Так как запрос $surrogate соответствует связанной целевой таблице, результирующая функция форматирования будет результатом применения функций форматирования суррогата только к свойству, соответствующему такой таблице.
Параметры
-
Cake\ORM\Query$query запрос, к которому будет применена функция форматирования
-
Cake\ORM\Query$surrogate запрос, содержащий функции форматирования для связанной целевой таблицы.
-
array<string, mixed>$options параметры, переданные методу
attachTo
Возвращаемое значение
void_joinCondition() protected
_joinCondition(array<string, mixed> $options): array
Возвращает одно или несколько условий, которые должны быть добавлены к сгенерированному предложению join для получения результатов в целевой таблице.
Параметры
-
array<string, mixed>$options список параметров, переданных методу attachTo
Возвращаемое значение
arrayИсключения
RuntimeExceptionif the number of columns in the foreignKey do not match the number of columns in the source table primaryKey
_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
Переопределите эту функцию для инициализации любого конкретного класса ассоциации, ей будет передан исходный список параметров, используемых в конструкторе
Parameters
-
array<string, mixed>$options Список параметров, используемых для инициализации
Returns
void_pluginNamespace() protected
_pluginNamespace(string $pluginName): string
Возвращает пространство имен плагина
Parameters
-
string$pluginName Имя плагина
Returns
string_pluginPath() protected
_pluginPath(string $pluginName): string
Находит правильный путь для плагина. Сканирует $pluginPaths для нужного плагина.
Parameters
-
string$pluginName Имя нужного плагина, например, DebugKit
Returns
string_pluralHumanName() protected
_pluralHumanName(string $name): string
Создает множественное имя, используемое в представлениях
Parameters
-
string$name Имя контроллера
Returns
string_propertyName() protected
_propertyName(): string
Возвращает имя свойства по умолчанию на основе имени ассоциации.
Returns
string_singularHumanName() protected
_singularHumanName(string $name): string
Создает единственное имя, используемое в представлениях
Parameters
-
string$name Имя контроллера
Returns
string_singularName() protected
_singularName(string $name): string
Создает единственное имя для использования в представлениях.
Parameters
-
string$name Имя для использования
Returns
string_variableName() protected
_variableName(string $name): string
Создает множественное имя переменной для представлений
Parameters
-
string$name Имя для использования
Returns
stringattachTo() public
attachTo(Cake\ORM\Query $query, array<string, mixed> $options = []): void
Изменяет объект Query, чтобы включить данные целевой таблицы ассоциации в окончательный результат
Массив параметров принимает следующие ключи:
- includeFields: Включать ли поля целевой модели в результат или нет
- foreignKey: Имя поля, используемого в качестве внешнего ключа, если false, то не будет использоваться ни одно
- conditions: массив со списком условий для фильтрации соединения, он будет объединен с любыми условиями, первоначально настроенными для этой ассоциации
- fields: список полей в целевой таблице для включения в результат
- aliasPath: Точка-разделительная строка, представляющая путь имен ассоциаций, следующих от основной таблицы переданного запроса к этой ассоциации.
- propertyPath: Точка-разделительная строка, представляющая путь свойств ассоциации, по которому нужно следовать от основной сущности переданного запроса к этой ассоциации
- joinType: Тип соединения SQL, используемый в запросе.
- negateMatch: Добавит условие в переданный запрос для исключения совпадений с этой ассоциацией.
Parameters
-
Cake\ORM\Query$query запрос, который необходимо изменить, чтобы включить данные целевой таблицы
-
array<string, mixed>$options optional Любые дополнительные параметры или переопределения, которые необходимо учесть
Returns
voidThrows
RuntimeExceptionНевозможно построить запрос или ассоциации.
canBeJoined() public
canBeJoined(array<string, mixed> $options = []): bool
Можно ли эту ассоциацию выразить непосредственно в соединении запроса
Parameters
-
array<string, mixed>$options optional Ключ пользовательских параметров, который может изменить возвращаемое значение
Returns
boolcascadeDelete() abstract public
cascadeDelete(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): bool
Обрабатывает каскадное удаление из связанной модели.
Каждый реализующий класс должен обрабатывать каскадное удаление по мере необходимости.
Parameters
-
Cake\Datasource\EntityInterface$entity Сущность, которая инициировала каскадное удаление.
-
array<string, mixed>$options optional Параметры для исходного удаления.
Returns
booldefaultRowValue() public
defaultRowValue(array<string, mixed> $row, bool $joined): array<string, mixed>
Возвращает измененную строку после добавления свойства для этой ассоциации со значением пустого по умолчанию в зависимости от того, была ли ассоциация соединена или получена внешним образом.
Parameters
-
array<string, mixed>$row Строка, для которой нужно установить значение по умолчанию.
-
bool$joined Является ли строка результатом прямого соединения с этой ассоциацией
Returns
array<string, mixed>deleteAll() public
deleteAll(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Передает операцию удаления методу deleteAll целевой таблицы
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, которые будут использоваться, принимает все, что может принять Query::where().
Returns
intSee Also
eagerLoader() abstract public
eagerLoader(array<string, mixed> $options): Closure
Жадная загрузка списка записей в целевой таблице, которые связаны с другим набором записей в исходной таблице. Исходные записи могут быть указаны двумя способами: первый - путем передачи объекта Query, настроенного для поиска в исходной таблице, а второй - путем явной передачи массива значений первичных ключей из исходной таблицы.
Необходимый способ передачи связанных исходных записей контролируется параметром "strategy". Когда используется стратегия подзапроса, потребуется запрос к исходной таблице. При использовании стратегии select будет использоваться список первичных ключей.
Возвращает замыкание, которое должно выполняться для каждой записи, возвращаемой в определенном запросе Query. Этот вызываемый объект будет отвечать за внедрение полей, которые связаны с каждой конкретной переданной строкой.
Массив параметров принимает следующие ключи:
- query: Объект Query, настроенный для поиска записей исходной таблицы
- keys: Список значений первичных ключей из исходной таблицы
- foreignKey: Имя поля, используемого для связи обеих таблиц
- conditions: Список условий, которые будут переданы методу where() запроса
- sort: Направление, в котором должны возвращаться записи
- fields: Список полей для выбора из целевой таблицы
- contain: Список связанных таблиц для жадной загрузки, связанных с целевой таблицей
- strategy: Имя стратегии, используемой для поиска записей целевой таблицы
- nestKey: Ключ массива, под которым будут найдены результаты при преобразовании строки
Parameters
-
array<string, mixed>$options Параметры для жадной загрузки.
Returns
Closureexists() public
exists(Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): bool
Передает операцию методу exists целевой таблицы после добавления условий по умолчанию для этой ассоциации
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия, которые будут использоваться для проверки соответствия любой записи.
Returns
boolSee Also
fetchTable() public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Удобный метод для получения экземпляра таблицы.
Parameters
-
string|null$alias optional Имя псевдонима, которое вы хотите получить. Должно быть в формате CamelCase. Если
null, то используется значение свойства $defaultTable.-
array<string, mixed>$options optional Параметры, с которыми вы хотите создать таблицу. Если таблица уже загружена, параметры реестра будут игнорироваться.
Returns
Cake\ORM\TableThrows
Cake\Core\Exception\CakeExceptionЕсли аргумент `$alias` и свойство `$defaultTable` оба равны `null`.
See Also
find() public
find(array<string, mixed>|string|null $type = null, array<string, mixed> $options = []): Cake\ORM\Query
Передает операцию поиска методу поиска целевой таблицы и изменяет запрос в соответствии с конфигурацией этого связывания.
Parameters
-
array<string, mixed>|string|null$type optional тип запроса для выполнения, если передан массив, он будет интерпретироваться как параметр
$options-
array<string, mixed>$options optional Параметры для поиска.
Returns
Cake\ORM\QuerySee Also
getBindingKey() public
getBindingKey(): array<string>|string
Возвращает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
Returns
array<string>|stringgetCascadeCallbacks() public
getCascadeCallbacks(): bool
Возвращает, должны ли каскадные удаления также запускать коллбэки.
Returns
boolgetClassName() public
getClassName(): string
Возвращает имя класса объекта целевой таблицы.
Returns
stringgetConditions() public
getConditions(): Closure|array
Возвращает список условий, которые всегда должны включаться при извлечении записей из целевого связывания.
Returns
Closure|arraySee Also
getDependent() public
getDependent(): bool
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это в основном используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
Returns
boolgetFinder() public
getFinder(): array|string
Возвращает средство поиска по умолчанию для извлечения строк из целевой таблицы.
Returns
array|stringgetForeignKey() public
getForeignKey(): array<string>|string
Возвращает имя поля, представляющего внешний ключ к целевой таблице.
Returns
array<string>|stringgetJoinType() public
getJoinType(): string
Возвращает тип соединения, который будет использоваться при добавлении связи к запросу.
Returns
stringgetName() public
getName(): string
Возвращает имя для этого связывания, обычно псевдоним, назначенный целевой связанной таблице.
Returns
stringgetProperty() public
getProperty(): string
Возвращает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Returns
stringgetSource() public
getSource(): Cake\ORM\Table
Возвращает экземпляр таблицы для исходной стороны связи.
Returns
Cake\ORM\TablegetStrategy() public
getStrategy(): string
Возвращает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы связей могут не реализовывать, а только стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
Returns
stringgetTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Возвращает локатор таблицы.
Returns
Cake\ORM\Locator\LocatorInterfacegetTarget() public
getTarget(): Cake\ORM\Table
Возвращает экземпляр таблицы для целевой стороны связи.
Returns
Cake\ORM\TableisOwningSide() abstract public
isOwningSide(Cake\ORM\Table $side): bool
Возвращает, является ли переданная таблица владеющей стороной для этого связывания. Это означает, что строки в таблице «цель» будут пропускать важную или необходимую информацию, если строка в «источнике» не существовала.
Parameters
-
Cake\ORM\Table$side Потенциальная таблица с правом собственности
Returns
boolrequiresKeys() public
requiresKeys(array<string, mixed> $options = []): bool
Возвращает true, если процесс нетерпеливой загрузки потребует набор ключей связывания владеющей таблицы, чтобы использовать их в качестве фильтра в запросе поиска.
Parameters
-
array<string, mixed>$options optional Параметры, содержащие стратегию, которая будет использоваться.
Returns
boolsaveAssociated() abstract public
saveAssociated(Cake\Datasource\EntityInterface $entity, array<string, mixed> $options = []): Cake\Datasource\EntityInterface|false
Извлекает данные связывания цели из переданного объекта и передает операцию сохранения в целевую таблицу.
Parameters
-
Cake\Datasource\EntityInterface$entity данные для сохранения
-
array<string, mixed>$options optional Параметры для сохранения связанных данных.
Returns
Cake\Datasource\EntityInterface|falseSee Also
setBindingKey() public
setBindingKey(array<string>|string $key): $this
Устанавливает имя поля, представляющего поле связывания с целевой таблицей. Если не указано вручную, используется первичный ключ таблицы владельца.
Parameters
-
array<string>|string$key поле или поля таблицы, которые будут использоваться для связывания обеих таблиц.
Returns
$thissetCascadeCallbacks() public
setCascadeCallbacks(bool $cascadeCallbacks): $this
Устанавливает, должны ли каскадные удаления также запускать коллбэки.
Parameters
-
bool$cascadeCallbacks значение переключателя каскадных коллбэков
Returns
$thissetClassName() public
setClassName(string $className): $this
Устанавливает имя класса объекта целевой таблицы.
Parameters
-
string$className Имя класса для установки.
Returns
$thisThrows
InvalidArgumentExceptionВ случае, если имя класса устанавливается после того, как целевая таблица разрешена, и оно не совпадает с именем класса целевой таблицы.
setConditions() public
setConditions(Closure|array $conditions): $this
Устанавливает список условий, которые всегда должны включаться при извлечении записей из целевого объединения.
Parameters
-
Closure|array$conditions список условий для использования
Returns
$thisSee Also
setDependent() public
setDependent(bool $dependent): $this
Устанавливает, зависят ли записи в целевой таблице от исходной таблицы.
Это используется в первую очередь для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
Если параметры не передаются, возвращается текущее значение.
Parameters
-
bool$dependent Установите режим зависимостей. Используйте null для чтения текущего состояния.
Returns
$thissetFinder() public
setFinder(array|string $finder): $this
Устанавливает средство поиска по умолчанию для извлечения строк из целевой таблицы.
Parameters
-
array|string$finder имя средства поиска для использования или массив имени средства поиска и опции.
Returns
$thissetForeignKey() public
setForeignKey(array<string>|string $key): $this
Устанавливает имя поля, представляющего внешний ключ к целевой таблице.
Parameters
-
array<string>|string$key ключ или ключи, которые будут использоваться для связи обеих таблиц
Returns
$thissetJoinType() public
setJoinType(string $type): $this
Устанавливает тип соединения, которое будет использоваться при добавлении связи к запросу.
Parameters
-
string$type тип соединения, который будет использоваться (например, INNER)
Returns
$thissetName() public
setName(string $name): $this
Устанавливает имя для этой связи, обычно псевдоним, назначенный целевой связанной таблице
Parameters
-
string$name Имя, которое будет назначено
Returns
$thissetProperty() public
setProperty(string $name): $this
Устанавливает имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Parameters
-
string$name Имя свойства связи. Используйте null для чтения текущего значения.
Returns
$thissetSource() public
setSource(Cake\ORM\Table $table): $this
Устанавливает экземпляр таблицы для исходной стороны связи.
Parameters
-
Cake\ORM\Table$table экземпляр, который будет назначен как исходная сторона
Returns
$thissetStrategy() public
setStrategy(string $name): $this
Устанавливает имя стратегии, которая будет использоваться для извлечения связанных записей. Имейте в виду, что некоторые типы связей могут не реализовывать, а только стратегию по умолчанию, что делает любые изменения этого параметра недействительными.
Parameters
-
string$name Тип стратегии. Используйте null для чтения текущего значения.
Returns
$thisThrows
InvalidArgumentExceptionКогда предоставляется неверная стратегия.
setTableLocator() public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Устанавливает локатор таблиц.
Parameters
-
Cake\ORM\Locator\LocatorInterface$tableLocator Экземпляр LocatorInterface.
Returns
$thissetTarget() public
setTarget(Cake\ORM\Table $table): $this
Устанавливает экземпляр таблицы для целевой стороны связи.
Parameters
-
Cake\ORM\Table$table экземпляр, который будет назначен как целевая сторона
Returns
$thistransformRow() public
transformRow(array $row, string $nestKey, bool $joined, string|null $targetProperty = null): array
Правильно вкладывает значения строки результата, связанные со значениями, в правильные ключи массива внутри результатов источника.
Parameters
-
array$row Строка для преобразования
-
string$nestKey Ключ массива, под которым должны находиться результаты для этой связи
-
bool$joined Является ли строка результатом прямого соединения с этой ассоциацией
-
string|null$targetProperty optional Имя свойства в результатах источника, где данные ассоциации должны быть вложены. Будет использовать значение по умолчанию, если не предоставлено.
Returns
arraytype() abstract public
type(): string
Получить тип связи.
Returns
stringupdateAll() public
updateAll(array $fields, Cake\Database\ExpressionInterfaceClosure|array|string|null $conditions): int
Передает операцию обновления в метод updateAll целевой таблицы
Parameters
-
array$fields Хэш поле => новое значение.
-
Cake\Database\ExpressionInterfaceClosure|array|string|null$conditions Условия для использования, принимает все, что может принимать Query::where().
Returns
intSee Also
Подробное описание свойства
$_bindingKey protected
Имя поля в таблице владельца, используемое для сопоставления с foreignKey
Type
array<string>|string|null$_cascadeCallbacks protected
Следует ли также запускать обратные вызовы при каскадных удалениях.
Type
bool$_className protected
Имя класса объекта целевой таблицы
Type
string$_conditions protected
Список условий, которые всегда должны включаться при извлечении записей из целевой ассоциации
Type
Closure|array$_dependent protected
Зависят ли записи в целевой таблице от исходной таблицы, часто используется для указания того, что записи должны быть удалены, если владеющая запись в исходной таблице удалена.
Type
bool$_finder protected
Имя средства поиска по умолчанию, используемое для извлечения строк из целевой таблицы. С массивом значений разрешены имя средства поиска и параметры по умолчанию.
Type
array|string$_foreignKey protected
Имя поля, представляющего внешний ключ к загружаемой таблице
Type
array<string>|string$_joinType protected
Тип соединения, который будет использоваться при добавлении ассоциации к запросу
Type
string$_name protected
Имя, данное ассоциации, обычно представляет псевдоним, присвоенный целевой связанной таблице
Type
string$_propertyName protected
Имя свойства, которое должно быть заполнено данными из целевой таблицы в записи исходной таблицы.
Type
string$_sourceTable protected
Экземпляр исходной таблицы
Type
Cake\ORM\Table$_strategy protected
Имя стратегии, которая будет использоваться для извлечения связанных записей. Некоторые типы ассоциаций могут не реализовывать, но одну стратегию для извлечения записей.
Type
string$_tableLocator protected
Экземпляр локатора таблицы
Type
Cake\ORM\Locator\LocatorInterface|null$_targetTable protected
Экземпляр целевой таблицы
Type
Cake\ORM\Table$_validStrategies protected
Допустимые стратегии для этой ассоциации. Подклассы могут сузить этот список.
Type
array<string>$defaultTable protected
Псевдоним таблицы по умолчанию для этого объекта.
Type
string|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.ORM.Association.html