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.

Namespace: Cake\ORM

Properties summary

  • $_aliasPath protected
    string

    A dotted separated string representing the path of associations that should be followed to fetch this level.

  • $_associations protected
    \Cake\ORM\EagerLoadable[]

    A list of other associations to load from this level.

  • $_canBeJoined protected
    bool

    Whether or not 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 or not 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 or not this level can be fetched using a join.

  • forMatching() public

    Gets whether or not 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 or not 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

__clone() public

__clone()

Handles cloning eager loadables.

__construct() public

__construct(string $name, array $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 $config optional

The list of properties to set.

addAssociation() public

addAssociation(string $name, \Cake\ORM\EagerLoadable $association)

Adds a new association to be loaded from this level.

Parameters

string $name

The association name.

\Cake\ORM\EagerLoadable $association

The association to load.

aliasPath() public

aliasPath()

Gets a dot separated string representing the path of associations that should be followed to fetch this level.

Returns

string

asContainArray() public

asContainArray()

Returns a representation of this object that can be passed to Cake\ORM\EagerLoader::contain()

Returns

array

associations() public

associations()

Returns the Association class instance to use for loading the records.

Returns

\Cake\ORM\EagerLoadable[]

canBeJoined() public

canBeJoined()

Gets whether or not this level can be fetched using a join.

Returns

bool

forMatching() public

forMatching()

Gets whether or not this level was meant for a "matching" fetch operation.

Returns

bool|null

getConfig() public

getConfig()

Gets the list of options to pass to the association object for loading the records.

Returns

array

instance() public

instance()

Gets the Association class instance to use for loading the records.

Returns

\Cake\ORM\Association

Throws

RuntimeException

propertyPath() public

propertyPath()

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)

Sets whether or not this level can be fetched using a join.

Parameters

bool $possible

The value to set.

Returns

$this

setConfig() public

setConfig(array $config)

Sets the list of options to pass to the association object for loading the records.

Parameters

array $config

The value to set.

Returns

$this

targetProperty() public

targetProperty()

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

\Cake\ORM\EagerLoadable[]

$_canBeJoined protected

Whether or not this level can be fetched using a join.

Type

bool

$_config protected

A list of options to pass to the association object for loading the records.

Type

array

$_forMatching protected

Whether or not 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

$_name protected

The name of the association to load.

Type

string

$_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

© 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.1/class-Cake.ORM.EagerLoadable.html