W3cubDocs

/CakePHP 4.4

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

Property Summary

  • $_aliasPath protected
    string

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

  • $_associations protected
    arrayCake\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<string, mixed>

    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

__clone() public

__clone(): void

Handles cloning eager loadables.

Returns

void

__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<string, array>

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

Returns

array<string, array>

associations() public

associations(): arrayCake\ORM\EagerLoadable>

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

Returns

arrayCake\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<string, mixed>

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

Returns

array<string, mixed>

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

arrayCake\ORM\EagerLoadable>

$_canBeJoined protected

Whether 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<string, mixed>

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

$_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.4/class-Cake.ORM.EagerLoadable.html