\Cake\ORMAssociationCollection

A container/collection for association classes.

Contains methods for managing associations, and ordering operations around saving and deleting.

Summary

Methods
Properties
Constants
tableLocator()
setTableLocator()
getTableLocator()
__construct()
add()
load()
get()
getByProperty()
has()
keys()
type()
getByType()
remove()
removeAll()
saveParents()
saveChildren()
cascadeDelete()
normalizeKeys()
getIterator()
No public properties found
No constants found
_normalizeAssociations()
_saveAssociations()
_save()
_getNoCascadeItems()
$_tableLocator
$_items
N/A
No private methods found
No private properties found
N/A

Properties

$_items

$_items : array<mixed,\Cake\ORM\Association>

Stored associations

Type

array<mixed,\Cake\ORM\Association>

Methods

tableLocator()

tableLocator(\Cake\ORM\Locator\LocatorInterface|null  $tableLocator = null) : \Cake\ORM\Locator\LocatorInterface

Sets the table locator.

If no parameters are passed, it will return the currently used locator.

Parameters

\Cake\ORM\Locator\LocatorInterface|null $tableLocator

LocatorInterface instance.

Returns

\Cake\ORM\Locator\LocatorInterface

setTableLocator()

setTableLocator(\Cake\ORM\Locator\LocatorInterface  $tableLocator) : $this

Sets the table locator.

Parameters

\Cake\ORM\Locator\LocatorInterface $tableLocator

LocatorInterface instance.

Returns

$this

__construct()

__construct(\Cake\ORM\Locator\LocatorInterface|null  $tableLocator = null) 

Constructor.

Sets the default table locator for associations. If no locator is provided, the global one will be used.

Parameters

\Cake\ORM\Locator\LocatorInterface|null $tableLocator

Table locator instance.

add()

add(string  $alias, \Cake\ORM\Association  $association) : \Cake\ORM\Association

Add an association to the collection

If the alias added contains a . the part preceding the . will be dropped. This makes using plugins simpler as the Plugin.Class syntax is frequently used.

Parameters

string $alias

The association alias

\Cake\ORM\Association $association

The association to add.

Returns

\Cake\ORM\Association

The association object being added.

load()

load(string  $className, string  $associated, array  $options = array()) : \Cake\ORM\Association

Creates and adds the Association object to this collection.

Parameters

string $className

The name of association class.

string $associated

The alias for the target table.

array $options

List of options to configure the association definition.

Throws

\InvalidArgumentException

Returns

\Cake\ORM\Association

get()

get(string  $alias) : \Cake\ORM\Association|null

Fetch an attached association by name.

Parameters

string $alias

The association alias to get.

Returns

\Cake\ORM\Association|null —

Either the association or null.

getByProperty()

getByProperty(string  $prop) : \Cake\ORM\Association|null

Fetch an association by property name.

Parameters

string $prop

The property to find an association by.

Returns

\Cake\ORM\Association|null —

Either the association or null.

has()

has(string  $alias) : boolean

Check for an attached association by name.

Parameters

string $alias

The association alias to get.

Returns

boolean —

Whether or not the association exists.

keys()

keys() : array<mixed,string>

Get the names of all the associations in the collection.

Returns

array<mixed,string>

type()

type(string|array  $class) : array

Get an array of associations matching a specific type.

Parameters

string|array $class

The type of associations you want. For example 'BelongsTo' or array like ['BelongsTo', 'HasOne']

Returns

array —

An array of Association objects.

getByType()

getByType(string|array  $class) : array

Get an array of associations matching a specific type.

Parameters

string|array $class

The type of associations you want. For example 'BelongsTo' or array like ['BelongsTo', 'HasOne']

Returns

array —

An array of Association objects.

remove()

remove(string  $alias) : void

Drop/remove an association.

Once removed the association will not longer be reachable

Parameters

string $alias

The alias name.

removeAll()

removeAll() : void

Remove all registered associations.

Once removed associations will not longer be reachable

saveParents()

saveParents(\Cake\ORM\Table  $table, \Cake\Datasource\EntityInterface  $entity, array  $associations, array  $options = array()) : boolean

Save all the associations that are parents of the given entity.

Parent associations include any association where the given table is the owning side.

Parameters

\Cake\ORM\Table $table

The table entity is for.

\Cake\Datasource\EntityInterface $entity

The entity to save associated data for.

array $associations

The list of associations to save parents from. associations not in this list will not be saved.

array $options

The options for the save operation.

Returns

boolean —

Success

saveChildren()

saveChildren(\Cake\ORM\Table  $table, \Cake\Datasource\EntityInterface  $entity, array  $associations, array  $options) : boolean

Save all the associations that are children of the given entity.

Child associations include any association where the given table is not the owning side.

Parameters

\Cake\ORM\Table $table

The table entity is for.

\Cake\Datasource\EntityInterface $entity

The entity to save associated data for.

array $associations

The list of associations to save children from. associations not in this list will not be saved.

array $options

The options for the save operation.

Returns

boolean —

Success

cascadeDelete()

cascadeDelete(\Cake\Datasource\EntityInterface  $entity, array  $options) : void

Cascade a delete across the various associations.

Cascade first across associations for which cascadeCallbacks is true.

Parameters

\Cake\Datasource\EntityInterface $entity

The entity to delete associations for.

array $options

The options used in the delete operation.

normalizeKeys()

normalizeKeys(boolean|array  $keys) : array

Returns an associative array of association names out a mixed array. If true is passed, then it returns all association names in this collection.

Parameters

boolean|array $keys

the list of association names to normalize

Returns

array

getIterator()

getIterator() : \ArrayIterator

Allow looping through the associations

Returns

\ArrayIterator

_normalizeAssociations()

_normalizeAssociations(array  $associations) : array

Returns an array out of the original passed associations list where dot notation is transformed into nested arrays so that they can be parsed by other routines

Parameters

array $associations

The array of included associations.

Returns

array —

An array having dot notation transformed into nested arrays

_saveAssociations()

_saveAssociations(\Cake\ORM\Table  $table, \Cake\Datasource\EntityInterface  $entity, array  $associations, array  $options, boolean  $owningSide) : boolean

Helper method for saving an association's data.

Parameters

\Cake\ORM\Table $table

The table the save is currently operating on

\Cake\Datasource\EntityInterface $entity

The entity to save

array $associations

Array of associations to save.

array $options

Original options

boolean $owningSide

Compared with association classes' isOwningSide method.

Throws

\InvalidArgumentException

When an unknown alias is used.

Returns

boolean —

Success

_save()

_save(\Cake\ORM\Association  $association, \Cake\Datasource\EntityInterface  $entity, array  $nested, array  $options) : boolean

Helper method for saving an association's data.

Parameters

\Cake\ORM\Association $association

The association object to save with.

\Cake\Datasource\EntityInterface $entity

The entity to save

array $nested

Options for deeper associations

array $options

Original options

Returns

boolean —

Success

_getNoCascadeItems()

_getNoCascadeItems(\Cake\Datasource\EntityInterface  $entity, array  $options) : array<mixed,\Cake\ORM\Association>

Returns items that have no cascade callback.

Parameters

\Cake\Datasource\EntityInterface $entity

The entity to delete associations for.

array $options

The options used in the delete operation.

Returns

array<mixed,\Cake\ORM\Association>