Класс AssociationCollection
Контейнер/коллекция для ассоциативных классов.
Содержит методы для управления ассоциациями и упорядочивания операций сохранения и удаления.
Краткое описание свойств
- $_items protected
arrayCake\ORM\Association>Хранилище ассоциаций
- $_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullЭкземпляр локатора таблиц
- $defaultTable protected
string|nullПсевдоним таблицы по умолчанию для данного объекта.
Краткое описание методов
-
__construct() public
Конструктор.
-
_normalizeAssociations() protected
Возвращает массив из исходного списка ассоциаций, где обозначение точками преобразовано в вложенные массивы, чтобы их можно было обработать другими процедурами
-
_save() protected
Вспомогательный метод для сохранения данных ассоциации.
-
_saveAssociations() protected
Вспомогательный метод для сохранения данных ассоциации.
-
add() public
Добавить ассоциацию в коллекцию
-
cascadeDelete() public
Каскадное удаление по различным ассоциациям. Сначала каскадное удаление по ассоциациям, для которых cascadeCallbacks равно true.
-
fetchTable() public
Удобный метод для получения экземпляра таблицы.
-
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 необязательный Экземпляр локатора таблиц.
_normalizeAssociations() protected
_normalizeAssociations(array|string $associations): array
Возвращает массив из исходного списка ассоциаций, где обозначение точек преобразуется в вложенные массивы, чтобы их могли обработать другие подпрограммы.
Параметры
-
array|string$associations Массив включенных ассоциаций.
Возвращаемое значение
array_save() protected
_save(Cake\ORM\Association $association, Cake\Datasource\EntityInterface $entity, array<string, mixed> $nested, array<string, mixed> $options): bool
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Association$association Объект ассоциации для сохранения.
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения
-
array<string, mixed>$nested Параметры для более глубоких ассоциаций
-
array<string, mixed>$options Исходные параметры
Возвращаемое значение
bool_saveAssociations() protected
_saveAssociations(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array<string, mixed> $options, bool $owningSide): bool
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Table$table Таблица, над которой в данный момент выполняется сохранение.
-
Cake\Datasource\EntityInterface$entity Сущность для сохранения
-
array$associations Массив ассоциаций для сохранения.
-
array<string, mixed>$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<string, mixed> $options): bool
Каскадное удаление по различным ассоциациям. Каскадное удаление происходит сначала по ассоциациям, для которых cascadeCallbacks равно true.
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность, для которой нужно удалить ассоциации.
-
array<string, mixed>$options Параметры, используемые в операции удаления.
Возвращаемое значение
boolfetchTable() public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Удобный метод для получения экземпляра таблицы.
Параметры
-
string|null$alias необязательный Имя псевдонима, которое нужно получить. Должно быть в формате CamelCase. Если
null, используется значение свойства $defaultTable.-
array<string, mixed>$options необязательный Параметры, с которыми нужно создать таблицу. Если таблица уже загружена, параметры реестра будут игнорироваться.
Возвращаемое значение
Cake\ORM\TableИсключения
Cake\Core\Exception\CakeExceptionЕсли аргумент `$alias` и свойство `$defaultTable` оба равны `null`.
См. также
get() 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(array<string>|string $class): arrayCake\ORM\Association>
Получить массив ассоциаций, соответствующих определённому типу.
Параметры
-
array<string>|string$class Тип ассоциаций, который вы хотите. Например, 'BelongsTo' или массив типа ['BelongsTo', 'HasOne']
Возвращаемое значение
arrayCake\ORM\Association>getIterator() public
getIterator(): Traversable<string,Cake\ORM\Association>
Разрешить циклическое прохождение по ассоциациям
Возвращаемое значение
Traversable<string,Cake\ORM\Association>getTableLocator() public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Получает локатор таблиц.
Возвращаемое значение
Cake\ORM\Locator\LocatorInterfacehas() public
has(string $alias): bool
Проверка наличия присоединённой ассоциации по имени.
Параметры
-
string$alias Псевдоним ассоциации для получения.
Возвращаемое значение
boolkeys() public
keys(): array<string>
Получить имена всех ассоциаций в коллекции.
Возвращаемое значение
array<string>load() public
load(string $className, string $associated, array<string, mixed> $options = []): Cake\ORM\Association
Создаёт и добавляет объект Association в эту коллекцию.
Параметры
-
string$className Имя класса ассоциации.
-
string$associated Псевдоним целевой таблицы.
-
array<string, mixed>$options необязательный Список параметров для настройки определения ассоциации.
Возвращаемое значение
Cake\ORM\AssociationИсключения
InvalidArgumentExceptionnormalizeKeys() public
normalizeKeys(array|bool $keys): array
Возвращает ассоциативный массив имён ассоциаций из смешанного массива. Если передано значение true, возвращает все имена ассоциаций в этой коллекции.
Параметры
-
array|bool$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<string, mixed> $options): bool
Сохранить все ассоциации, являющиеся дочерними для заданного сущности.
Дочерние ассоциации включают любую ассоциацию, где заданная таблица не является владеющей стороной.
Параметры
-
Cake\ORM\Table$table Сущность таблицы.
-
Cake\Datasource\EntityInterface$entity Сущность, для которой сохраняются связанные данные.
-
array$associations Список ассоциаций, для которых сохраняются дочерние элементы. Ассоциации, не входящие в этот список, не будут сохранены.
-
array<string, mixed>$options Параметры для операции сохранения.
Возвращает
boolsaveParents() public
saveParents(Cake\ORM\Table $table, Cake\Datasource\EntityInterface $entity, array $associations, array<string, mixed> $options = []): bool
Сохранить все ассоциации, являющиеся родительскими для заданной сущности.
Родительские ассоциации включают любую ассоциацию, где заданная таблица является владеющей стороной.
Параметры
-
Cake\ORM\Table$table Сущность таблицы.
-
Cake\Datasource\EntityInterface$entity Сущность, для которой сохраняются связанные данные.
-
array$associations Список ассоциаций, для которых сохраняются родительские элементы. Ассоциации, не входящие в этот список, не будут сохранены.
-
array<string, mixed>$options optional Параметры для операции сохранения.
Возвращает
boolsetTableLocator() public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Устанавливает локатор таблицы.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator Экземпляр LocatorInterface.
Возвращает
$thisПодробное описание свойств
$_items protected
Сохранённые ассоциации
Тип
arrayCake\ORM\Association>$_tableLocator protected
Экземпляр локатора таблиц
Тип
Cake\ORM\Locator\LocatorInterface|null$defaultTable protected
Псевдоним таблицы по умолчанию для этого объекта.
Тип
string|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.ORM.AssociationCollection.html