Class AssociationCollection
A container/collection for association classes.
Contains methods for managing associations, and ordering operations around saving and deleting.
- Cake\ORM\AssociationCollection implements IteratorAggregate uses Cake\ORM\AssociationsNormalizerTrait , Cake\ORM\Locator\LocatorAwareTrait
Properties summary
-
$_items
protectedStored associations
Inherited Properties
Method Summary
-
__construct() public
Constructor. -
_getNoCascadeItems() protected
Returns items that have no cascade callback. -
_save() protected
Helper method for saving an association's data. -
_saveAssociations() protected
Helper method for saving an association's data. -
add() public
Add an association to the collection -
cascadeDelete() public
Cascade a delete across the various associations. Cascade first across associations for which cascadeCallbacks is true.
-
get() public
Fetch an attached association by name. -
getByProperty() public
Fetch an association by property name. -
getByType() public
Get an array of associations matching a specific type. -
getIterator() public
Allow looping through the associations -
has() public
Check for an attached association by name. -
keys() public
Get the names of all the associations in the collection. -
load() public
Creates and adds the Association object to this collection. -
normalizeKeys() public
Returns an associative array of association names out a mixed array. If true is passed, then it returns all association names in this collection.
-
remove() public
Drop/remove an association. -
removeAll() public
Remove all registered associations. -
saveChildren() public
Save all the associations that are children of the given entity. -
saveParents() public
Save all the associations that are parents of the given entity. -
type() public
Get an array of associations matching a specific type.
Method Detail
__construct() public ¶
__construct( Cake\ORM\Locator\LocatorInterface
$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
$tableLocator optional null - Table locator instance.
_getNoCascadeItems() protected ¶
_getNoCascadeItems( Cake\Datasource\EntityInterface
$entity , array $options )
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
_save() protected ¶
_save( Cake\ORM\Association
$association , Cake\Datasource\EntityInterface
$entity , array $nested , array $options )
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
Success
_saveAssociations() protected ¶
_saveAssociations( Cake\ORM\Table
$table , Cake\Datasource\EntityInterface
$entity , array $associations , array $options , boolean $owningSide )
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.
Returns
Success
Throws
When an unknown alias is used.
add() public ¶
add( string $alias , Cake\ORM\Association
$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
cascadeDelete() public ¶
cascadeDelete( Cake\Datasource\EntityInterface
$entity , array $options )
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.
get() public ¶
get( string $alias )
Fetch an attached association by name.
Parameters
- string $alias
- The association alias to get.
Returns
getByProperty() public ¶
getByProperty( string $prop )
Fetch an association by property name.
Parameters
- string $prop
- The property to find an association by.
Returns
getByType() public ¶
getByType( string|array $class )
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
An array of Association objects.
Since
getIterator() public ¶
getIterator( )
Allow looping through the associations
Returns
Implementation of
IteratorAggregate::getIterator()
has() public ¶
has( string $alias )
Check for an attached association by name.
Parameters
- string $alias
- The association alias to get.
Returns
Whether or not the association exists.
load() public ¶
load( string $className , string $associated , array $options [] )
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 optional []
- List of options to configure the association definition.
Returns
Throws
normalizeKeys() public ¶
normalizeKeys( boolean|array $keys )
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
remove() public ¶
remove( string $alias )
Drop/remove an association.
Once removed the association will not longer be reachable
Parameters
- string $alias
- The alias name.
removeAll() public ¶
removeAll( )
Remove all registered associations.
Once removed associations will not longer be reachable
saveChildren() public ¶
saveChildren( Cake\ORM\Table
$table , Cake\Datasource\EntityInterface
$entity , array $associations , array $options )
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
Success
saveParents() public ¶
saveParents( Cake\ORM\Table
$table , Cake\Datasource\EntityInterface
$entity , array $associations , array $options [] )
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 optional []
- The options for the save operation.
Returns
Success
type() public ¶
type( string|array $class )
Get an array of associations matching a specific type.
Deprecated
Parameters
- string|array $class
The type of associations you want. For example 'BelongsTo' or array like ['BelongsTo', 'HasOne']
Returns
An array of Association objects.
Methods used from Cake\ORM\AssociationsNormalizerTrait
_normalizeAssociations() protected ¶
_normalizeAssociations( array $associations )
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
An array having dot notation transformed into nested arrays
Methods used from Cake\ORM\Locator\LocatorAwareTrait
setTableLocator() public ¶
setTableLocator( Cake\ORM\Locator\LocatorInterface
$tableLocator )
Sets the table locator.
Parameters
-
Cake\ORM\Locator\LocatorInterface
$tableLocator - LocatorInterface instance.
Returns
$this
tableLocator() public ¶
tableLocator( Cake\ORM\Locator\LocatorInterface
$tableLocator null )
Sets the table locator. If no parameters are passed, it will return the currently used locator.
Deprecated
Parameters
-
Cake\ORM\Locator\LocatorInterface
$tableLocator optional null - LocatorInterface instance.