Класс AssociationCollection
Контейнер/коллекция для ассоциативных классов.
Содержит методы для управления ассоциациями и упорядочения операций сохранения и удаления.
Краткое описание свойств
- $_items protected
Cake\ORM\Association[]Сохранённые ассоциации
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локатора таблиц
Краткое описание методов
-
__construct() public
Конструктор.
-
_normalizeAssociations() protected
Возвращает массив из исходного списка ассоциаций, где обозначение точкой преобразуется в вложенные массивы для того, чтобы их могли обработать другие процедуры.
-
_save() protected
Вспомогательный метод для сохранения данных ассоциации.
-
_saveAssociations() protected
Вспомогательный метод для сохранения данных ассоциации.
-
add() public
Добавить ассоциацию в коллекцию
-
cascadeDelete() public
Каскадное удаление по различным ассоциациям. Сначала каскадное удаление происходит по ассоциациям, для которых cascadeCallbacks равно true.
-
get() public
Получить присоединённую ассоциацию по имени.
-
getByProperty() public
Получить ассоциацию по имени свойства.
-
getByType() public
Получить массив ассоциаций, соответствующих определённому типу.
-
getIterator() public
Разрешить проход по ассоциациям
-
getTableLocator() public
Получить локатор таблиц.
-
has() public
Проверить наличие присоединённой ассоциации по имени.
-
keys() public
Получить имена всех ассоциаций в коллекции.
-
load() public
Создаёт и добавляет объект Association в эту коллекцию.
-
normalizeKeys() public
Возвращает ассоциативный массив имён ассоциаций из смешанного массива. Если передано значение true, возвращает все имена ассоциаций в этой коллекции.
-
remove() public
Удалить ассоциацию.
-
removeAll() public
Удалить все зарегистрированные ассоциации.
-
saveChildren() public
Сохранить все ассоциации, являющиеся дочерними для данного сущности.
-
saveParents() public
Сохранить все ассоциации, являющиеся родительскими для данной сущности.
-
setTableLocator() public
Установить локатор таблиц.
Краткое описание методов
__construct() public
__construct(Cake\ORM\Locator\LocatorInterface|null $tableLocator = null)
Конструктор.
Устанавливает локатор таблицы по умолчанию для ассоциаций. Если локатор не указан, будет использован глобальный.
Параметры
-
Cake\ORM\Locator\LocatorInterface|null$tableLocator optional Экземпляр локатора таблицы.
_normalizeAssociations() protected
_normalizeAssociations(array|string $associations): array
Возвращает массив из исходного списка ассоциаций, где нотация с точками преобразована во вложенные массивы, чтобы они могли быть обработаны другими процедурами
Параметры
-
array|string$associations Массив включенных ассоциаций.
Возвращает
array_save() protected
_save(Cake\ORM\Association $association, Cake\Datasource\EntityInterface $entity, array $nested, array $options): bool
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Association$association Объект ассоциации для сохранения.
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения
-
array$nested Параметры для вложенных ассоциаций
-
array$options Исходные параметры
Возвращает
bool_saveAssociations() protected
_saveAssociations(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array $options, bool $owningSide): bool
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Table$table Таблица, с которой в данный момент работает сохранение
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения
-
array$associations Массив ассоциаций для сохранения.
-
array$options Исходные параметры
-
bool$owningSide Сравнивается с методом isOwningSide классов ассоциаций.
Возвращает
boolВызывает исключение
InvalidArgumentExceptionКогда используется неизвестный псевдоним.
add() public
add(string $alias, Cake\ORM\Association $association): Cake\ORM\Association
Добавить ассоциацию в коллекцию
Если добавленный псевдоним содержит . часть, предшествующая ., будет отброшена. Это упрощает использование плагинов, поскольку часто используется синтаксис Plugin.Class.
Параметры
-
string$alias Псевдоним ассоциации
-
Cake\ORM\Association$association Ассоциация для добавления.
Возвращает
Cake\ORM\AssociationcascadeDelete() public
cascadeDelete(Cake\Datasource\EntityInterface $entity, array $options): bool
Каскадное удаление по различным ассоциациям. Сначала каскад по ассоциациям, для которых cascadeCallbacks равно true.
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для удаления ассоциаций.
-
array$options Параметры, используемые в операции удаления.
Возвращает
boolget() public
get(string $alias): Cake\ORM\Association|null
Получить прикрепленную ассоциацию по имени.
Параметры
-
string$alias Псевдоним ассоциации для получения.
Возвращает
Cake\ORM\Association|nullgetByProperty() public
getByProperty(string $prop): Cake\ORM\Association|null
Получить ассоциацию по имени свойства.
Параметры
-
string$prop Свойство для поиска ассоциации.
Возвращает
Cake\ORM\Association|nullgetByType() public
getByType(string|array $class): Cake\ORM\Association[]
Получить массив ассоциаций, соответствующих определенному типу.
Параметры
-
string|array$class Тип ассоциаций, который вы хотите. Например, 'BelongsTo' или массив, например ['BelongsTo', 'HasOne']
Возвращает
Cake\ORM\Association[]getIterator() public
getIterator(): Cake\ORM\Association[]
Разрешить перебор ассоциаций
Возвращает
Cake\ORM\Association[]getTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получает локатор таблицы.
Возвращает
Cake\ORM\Locator\LocatorInterfacehas() public
has(string $alias): bool
Проверить наличие прикрепленной ассоциации по имени.
Параметры
-
string$alias Псевдоним ассоциации для получения.
Возвращает
boolkeys() public
keys(): string[]
Получить имена всех ассоциаций в коллекции.
Возвращает
string[]load() public
load(string $className, string $associated, array $options = []): Cake\ORM\Association
Создает и добавляет объект Association в эту коллекцию.
Параметры
-
string$className Имя класса ассоциации.
-
string$associated Псевдоним для целевой таблицы.
-
array$options optional Список параметров для настройки определения ассоциации.
Возвращает
Cake\ORM\AssociationВызывает исключение
InvalidArgumentExceptionnormalizeKeys() public
normalizeKeys(bool|array $keys): array
Возвращает ассоциативный массив имен ассоциаций из смешанного массива. Если передано значение true, то возвращает все имена ассоциаций в этой коллекции.
Параметры
-
bool|array$keys Список имен ассоциаций для нормализации
Возвращает
arrayremove() public
remove(string $alias): void
Удалить ассоциацию.
После удаления ассоциация больше не будет доступна
Параметры
-
string$alias Имя псевдонима.
Возвращает
voidremoveAll() public
removeAll(): void
Удалить все зарегистрированные ассоциации.
После удаления ассоциации больше не будут доступны
Возвращает
voidsaveChildren() public
saveChildren(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array $options): bool
Сохранить все ассоциации, которые являются дочерними для данной сущности.
Дочерние ассоциации включают любую ассоциацию, где данная таблица не является владеющей стороной.
Параметры
-
Cake\ORM\Table$table Сущность таблицы.
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения связанных данных.
-
array$associations Список ассоциаций, из которых необходимо сохранить дочерние элементы. Ассоциации, отсутствующие в этом списке, сохраняться не будут.
-
array$options Параметры для операции сохранения.
Возвращает
boolsaveParents() public
saveParents(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array $options = []): bool
Сохранить все ассоциации, являющиеся родительскими для данного сущности.
Родительские ассоциации включают любые ассоциации, где заданная таблица является стороной владения.
Параметры
-
Cake\ORM\Table$table Сущность таблицы.
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения связанных данных.
-
array$associations Список ассоциаций для сохранения родителей. Ассоциации, не входящие в этот список, не будут сохранены.
-
array$options optional Параметры операции сохранения.
Возвращает
boolsetTableLocator() public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Устанавливает локатор таблицы.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator Экземпляр LocatorInterface.
Возвращает
$thisПодробное описание свойств
$_items protected
Сохранённые ассоциации
Тип
Cake\ORM\Association[]$_tableLocator protected
Экземпляр локатора таблицы
Тип
Cake\ORM\Locator\LocatorInterface|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.2/class-Cake.ORM.AssociationCollection.html