Class EagerLoadable
Represents a single level in the associations tree to be eagerly loaded for a specific query. This contains all the information required to fetch the results from the database from an associations and all its children levels.
Property Summary
-
$_aliasPath protected
string
A dotted separated string representing the path of associations that should be followed to fetch this level.
-
$_associations protected
array<Cake\ORM\EagerLoadable>
A list of other associations to load from this level.
-
$_canBeJoined protected
bool
Whether this level can be fetched using a join.
-
$_config protected
array
A list of options to pass to the association object for loading the records.
-
$_forMatching protected
bool|null
Whether this level was meant for a "matching" fetch operation
-
$_instance protected
Cake\ORM\Association|null
The Association class instance to use for loading the records.
-
$_name protected
string
The name of the association to load.
-
$_propertyPath protected
string|null
A dotted separated string representing the path of entity properties in which results for this level should be placed.
-
$_targetProperty protected
string|null
The property name where the association result should be nested in the result.
Method Summary
-
__clone() public
Handles cloning eager loadables.
-
__construct() public
Constructor. The $config parameter accepts the following array keys:
-
addAssociation() public
Adds a new association to be loaded from this level.
-
aliasPath() public
Gets a dot separated string representing the path of associations that should be followed to fetch this level.
-
asContainArray() public
Returns a representation of this object that can be passed to Cake\ORM\EagerLoader::contain()
-
associations() public
Returns the Association class instance to use for loading the records.
-
canBeJoined() public
Gets whether this level can be fetched using a join.
-
forMatching() public
Gets whether this level was meant for a "matching" fetch operation.
-
getConfig() public
Gets the list of options to pass to the association object for loading the records.
-
instance() public
Gets the Association class instance to use for loading the records.
-
propertyPath() public
Gets a dot separated string representing the path of entity properties in which results for this level should be placed.
-
setCanBeJoined() public
Sets whether this level can be fetched using a join.
-
setConfig() public
Sets the list of options to pass to the association object for loading the records.
-
targetProperty() public
The property name where the result of this association should be nested at the end.
Method Detail
__construct() ¶ public
__construct(string $name, array<string, mixed> $config = [])
Constructor. The $config parameter accepts the following array keys:
- associations
- instance
- config
- canBeJoined
- aliasPath
- propertyPath
- forMatching
- targetProperty
The keys maps to the settable properties in this class.
Parameters
-
string
$name The Association name.
-
array<string, mixed>
$config optional The list of properties to set.
addAssociation() ¶ public
addAssociation(string $name, Cake\ORM\EagerLoadable $association): void
Adds a new association to be loaded from this level.
Parameters
-
string
$name The association name.
-
Cake\ORM\EagerLoadable
$association The association to load.
Returns
void
aliasPath() ¶ public
aliasPath(): string
Gets a dot separated string representing the path of associations that should be followed to fetch this level.
Returns
string
asContainArray() ¶ public
asContainArray(): array
Returns a representation of this object that can be passed to Cake\ORM\EagerLoader::contain()
Returns
array
associations() ¶ public
associations(): array<Cake\ORM\EagerLoadable>
Returns the Association class instance to use for loading the records.
Returns
array<Cake\ORM\EagerLoadable>
canBeJoined() ¶ public
canBeJoined(): bool
Gets whether this level can be fetched using a join.
Returns
bool
forMatching() ¶ public
forMatching(): bool|null
Gets whether this level was meant for a "matching" fetch operation.
Returns
bool|null
getConfig() ¶ public
getConfig(): array
Gets the list of options to pass to the association object for loading the records.
Returns
array
instance() ¶ public
instance(): Cake\ORM\Association
Gets the Association class instance to use for loading the records.
Returns
Cake\ORM\Association
Throws
RuntimeException
propertyPath() ¶ public
propertyPath(): string|null
Gets a dot separated string representing the path of entity properties in which results for this level should be placed.
For example, in the following nested property:
$article->author->company->country
The property path of country
will be author.company
Returns
string|null
setCanBeJoined() ¶ public
setCanBeJoined(bool $possible): $this
Sets whether this level can be fetched using a join.
Parameters
-
bool
$possible The value to set.
Returns
$this
setConfig() ¶ public
setConfig(array<string, mixed> $config): $this
Sets the list of options to pass to the association object for loading the records.
Parameters
-
array<string, mixed>
$config The value to set.
Returns
$this
targetProperty() ¶ public
targetProperty(): string|null
The property name where the result of this association should be nested at the end.
For example, in the following nested property:
$article->author->company->country
The target property of country
will be just country
Returns
string|null
Property Detail
$_aliasPath ¶ protected
A dotted separated string representing the path of associations that should be followed to fetch this level.
Type
string
$_associations ¶ protected
A list of other associations to load from this level.
Type
array<Cake\ORM\EagerLoadable>
$_config ¶ protected
A list of options to pass to the association object for loading the records.
Type
array
$_forMatching ¶ protected
Whether this level was meant for a "matching" fetch operation
Type
bool|null
$_instance ¶ protected
The Association class instance to use for loading the records.
Type
Cake\ORM\Association|null
$_propertyPath ¶ protected
A dotted separated string representing the path of entity properties in which results for this level should be placed.
For example, in the following nested property:
$article->author->company->country
The property path of country
will be author.company
Type
string|null
$_targetProperty ¶ protected
The property name where the association result should be nested in the result.
For example, in the following nested property:
$article->author->company->country
The target property of country
will be just country
Type
string|null