Класс AssociationCollection
Контейнер/коллекция для ассоциативных классов.
Содержит методы для управления ассоциациями и операций упорядочения сохранения и удаления.
- Cake\ORM\AssociationCollection реализует IteratorAggregate использует Cake\ORM\AssociationsNormalizerTrait , Cake\ORM\Locator\LocatorAwareTrait
Краткое описание свойств
- Сохранённые ассоциации
$_itemsprotected
Наследуемые свойства
Краткое описание методов
- __construct() publicКонструктор.
- _getNoCascadeItems() protectedВозвращает элементы, у которых нет обратного вызова каскадирования.
- _save() protectedВспомогательный метод для сохранения данных ассоциации.
- _saveAssociations() protectedВспомогательный метод для сохранения данных ассоциации.
- add() publicДобавить ассоциацию в коллекцию
- cascadeDelete() public
Каскадное удаление по различным ассоциациям. Сначала каскадное удаление по ассоциациям, для которых cascadeCallbacks равно true.
- get() publicПолучить присоединённую ассоциацию по имени.
- getByProperty() publicПолучить ассоциацию по имени свойства.
- getByType() publicПолучить массив ассоциаций, соответствующих определённому типу.
- getIterator() publicРазрешить перебор ассоциаций
- has() publicПроверить наличие присоединённой ассоциации по имени.
- keys() publicПолучить имена всех ассоциаций в коллекции.
- load() publicСоздаёт и добавляет объект Association в эту коллекцию.
- normalizeKeys() public
Возвращает ассоциативный массив имён ассоциаций из смешанного массива. Если передано значение true, то возвращаются все имена ассоциаций в этой коллекции.
- remove() publicУдалить ассоциацию.
- removeAll() publicУдалить все зарегистрированные ассоциации.
- saveChildren() publicСохранить все ассоциации, являющиеся дочерними для данного сущности.
- saveParents() publicСохранить все ассоциации, являющиеся родительскими для данной сущности.
- Получить массив ассоциаций, соответствующих определённому типу.
Подробное описание метода
__construct()source public
__construct( Cake\ORM\Locator\LocatorInterface $tableLocator = null )
Конструктор.
Устанавливает локатор таблицы по умолчанию для ассоциаций. Если локатор не предоставлен, будет использован глобальный.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorнеобязательный null - Экземпляр локатора таблиц.
_getNoCascadeItems()source protected
_getNoCascadeItems( Cake\Datasource\EntityInterface $entity , array $options )
Возвращает элементы, у которых нет обратного вызова каскадирования.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, для которой нужно удалить ассоциации.
- массив
$options - Опции, используемые в операции удаления.
Возвращает
Cake\ORM\Association[]_save()source protected
_save( Cake\ORM\Association $association , Cake\Datasource\EntityInterface $entity , array $nested , array $options )
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Association$association - Объект ассоциации, который нужно сохранить.
-
Cake\Datasource\EntityInterface$entity - Сущность для сохранения
- массив
$nested - Опции для более глубоких ассоциаций
- массив
$options - Исходные параметры
Возвращает
booleanУспех
_saveAssociations()source protected
_saveAssociations( Cake\ORM\Table $table , Cake\Datasource\EntityInterface $entity , array $associations , array $options , boolean $owningSide )
Вспомогательный метод для сохранения данных ассоциации.
Параметры
-
Cake\ORM\Table$table - Таблица, над которой в данный момент выполняется сохранение
-
Cake\Datasource\EntityInterface$entity - Сущность для сохранения
- массив
$associations - Массив ассоциаций для сохранения.
- массив
$options - Исходные параметры
- boolean
$owningSide Сравнивается с методом isOwningSide классов ассоциаций.
Возвращает
booleanУспех
Выбрасывает
InvalidArgumentExceptionПри использовании неизвестного псевдонима.
add()source public
add( string $alias , Cake\ORM\Association $association )
Добавить ассоциацию в коллекцию
Если добавляемый псевдоним содержит ., часть перед . будет удалена. Это упрощает использование плагинов, так как часто используется синтаксис Plugin.Class.
Параметры
- строка
$alias - Псевдоним ассоциации
-
Cake\ORM\Association$association - Добавляемая ассоциация.
Возвращает
Cake\ORM\AssociationОбъект добавляемой ассоциации.
cascadeDelete()source public
cascadeDelete( Cake\Datasource\EntityInterface $entity , array $options )
Каскадное удаление по различным ассоциациям. Сначала выполняется каскадное удаление по ассоциациям, для которых cascadeCallbacks равно true.
Параметры
-
Cake\Datasource\EntityInterface$entity - Сущность, для которой нужно удалить ассоциации.
- массив
$options - Опции, используемые в операции удаления.
get()source public
get( string $alias )
Получить прикрепленную ассоциацию по имени.
Параметры
- строка
$alias - Псевдоним ассоциации, которую нужно получить.
Возвращает
Cake\ORM\Association|nullАссоциация или null.
getByProperty()source public
getByProperty( string $prop )
Получить ассоциацию по имени свойства.
Параметры
- строка
$prop - Свойство, по которому нужно найти ассоциацию.
Возвращает
Cake\ORM\Association|nullАссоциация или null.
getByType()source public
getByType( string|array $class )
Получить массив ассоциаций, соответствующих определенному типу.
Параметры
- строка|массив
$class Тип ассоциаций, которые вам нужны. Например, 'BelongsTo' или массив, подобный ['BelongsTo', 'HasOne']
Возвращает
массивМассив объектов Association.
С момента
3.5.3getIterator()source public
getIterator( )
Разрешить итерацию по ассоциациям
Возвращает
ArrayIteratorРеализация
IteratorAggregate::getIterator() has()source public
has( string $alias )
Проверка наличия присоединённой ассоциации по имени.
Параметры
- string
$alias - Псевдоним ассоциации для получения.
Возвращает
booleanСуществует ли ассоциация или нет.
load()source public
load( string $className , string $associated , array $options = [] )
Создаёт и добавляет объект Association в эту коллекцию.
Параметры
- string
$className - Имя класса ассоциации.
- string
$associated - Псевдоним целевой таблицы.
- array
$optionsнеобязательно [] - Список параметров для настройки определения ассоциации.
Возвращает
Cake\ORM\AssociationВызывает исключение
InvalidArgumentExceptionnormalizeKeys()source public
normalizeKeys( boolean|array $keys )
Возвращает ассоциативный массив имён ассоциаций из смешанного массива. Если передано значение true, возвращает все имена ассоциаций в этой коллекции.
Параметры
- boolean|array
$keys - Список имён ассоциаций для нормализации
Возвращает
arrayremove()source public
remove( string $alias )
Удаляет ассоциацию.
После удаления ассоциация больше не будет доступна
Параметры
- string
$alias - Имя псевдонима.
removeAll()source public
removeAll( )
Удаление всех зарегистрированных ассоциаций.
После удаления ассоциации больше не будут доступны
saveChildren()source public
saveChildren( Cake\ORM\Table $table , Cake\Datasource\EntityInterface $entity , array $associations , array $options )
Сохранение всех ассоциаций, являющихся дочерними для заданной сущности.
Дочерние ассоциации включают все ассоциации, где заданная таблица не является стороной владения.
Параметры
-
Cake\ORM\Table$table - Сущность для таблицы.
-
Cake\Datasource\EntityInterface$entity - Сущность для сохранения связанных данных.
- array
$associations Список ассоциаций для сохранения дочерних элементов. Ассоциации, не включённые в этот список, не будут сохранены.
- array
$options - Параметры для операции сохранения.
Возвращает
booleanУспех
saveParents()source public
saveParents( Cake\ORM\Table $table , Cake\Datasource\EntityInterface $entity , array $associations , array $options = [] )
Сохранение всех ассоциаций, являющихся родительскими для заданной сущности.
Родительские ассоциации включают все ассоциации, где заданная таблица является стороной владения.
Параметры
-
Cake\ORM\Table$table - Сущность для таблицы.
-
Cake\Datasource\EntityInterface$entity - Сущность для сохранения связанных данных.
- array
$associations Список ассоциаций для сохранения родительских элементов. Ассоциации, не включённые в этот список, не будут сохранены.
- array
$optionsнеобязательно [] - Параметры для операции сохранения.
Возвращает
booleanУспех
type()source public deprecated
type( string|array $class )
Получить массив ассоциаций, соответствующих определённому типу.
Устаревшее
3.5.3 Используйте getByType() вместо этого.Параметры
- строка|массив
$class Тип ассоциаций, который вы хотите. Например, 'BelongsTo' или массив, такой как ['BelongsTo', 'HasOne']
Возвращает
массивМассив объектов Association.
Методы, используемые из Cake\ORM\AssociationsNormalizerTrait
_normalizeAssociations()source protected
_normalizeAssociations( array $associations )
Возвращает массив из исходного списка ассоциаций, где нотация точек преобразуется в вложенные массивы, чтобы их могли обработать другие процедуры
Параметры
- массив
$associations - Массив включённых ассоциаций.
Возвращает
массивМассив, в котором нотация точек преобразована во вложенные массивы
Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait
getTableLocator()source public
getTableLocator( )
Получает локатор таблиц.
Возвращает
Cake\ORM\Locator\LocatorInterfacesetTableLocator()source public
setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )
Устанавливает локатор таблиц.
Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocator - Экземпляр LocatorInterface.
Возвращает
$this
tableLocator()source public deprecated
tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )
Устанавливает локатор таблиц. Если параметры не переданы, возвращает текущий используемый локатор.
Устаревшее
3.5.0 Используйте getTableLocator()/setTableLocator() вместо этого.Параметры
-
Cake\ORM\Locator\LocatorInterface$tableLocatorопционально null - Экземпляр LocatorInterface.
Возвращает
Cake\ORM\Locator\LocatorInterfaceПодробное описание свойств
© 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/3.8/class-Cake.ORM.AssociationCollection.html