Implements the logic for loading an association using a SELECT query
string
The alias of the association loading the results
string
The type of the association triggering the load
string
The binding key for the source association.
callable
A callable that will return a query object used for loading the association results
string|array
The foreignKey to the target association
string
The sorting options for loading the association
string
The alias of the source association
string
The strategy to use for loading, either select or subquery
string
The alias of the target association
Copies the options array to properties in this class. The keys in the array correspond to properties in this class.
Appends any conditions required to load the relevant set of records in the target table query given a filter key and some filtering values.
Appends any conditions required to load the relevant set of records in the target table query given a filter key and some filtering values when the filtering needs to be done using a subquery.
Checks that the fetching query either has auto fields on or has the foreignKey fields selected.
Auxiliary function to construct a new Query object to return all the records in the target table that are associated to those specified in $options from the source table
Builds an array containing the results from fetchQuery indexed by the foreignKey value corresponding to this association.
Builds a query to be used as a condition for filtering records in the target table, it is constructed by cloning the original query that was used to load records in the source table.
Returns a TupleComparison object that can be used for matching all the fields from $keys with the tuple values in $filter using the provided operator.
Generates a string used as a table field that contains the values upon which the filter should be applied
Returns a callable to be used for each row in a query result set for injecting the eager loaded rows when the matching needs to be done with multiple foreign keys
Returns a callable to be used for each row in a query result set for injecting the eager loaded rows
Returns a callable that can be used for injecting association results into a given iterator. The options accepted by this method are the same as Association::eagerLoader()
__construct(array $options)
Copies the options array to properties in this class. The keys in the array correspond to properties in this class.
array
$options Properties to be copied to this class
_addFilteringCondition(\Cake\ORM\Query $query, mixed $key, mixed $filter)
Appends any conditions required to load the relevant set of records in the target table query given a filter key and some filtering values.
\Cake\ORM\Query
$query Target table's query
string|array
$key The fields that should be used for filtering
mixed
$filter The value that should be used to match for $key
\Cake\ORM\Query
_addFilteringJoin(\Cake\ORM\Query $query, mixed $key, mixed $subquery)
Appends any conditions required to load the relevant set of records in the target table query given a filter key and some filtering values when the filtering needs to be done using a subquery.
\Cake\ORM\Query
$query Target table's query
string|string[]
$key the fields that should be used for filtering
\Cake\ORM\Query
$subquery The Subquery to use for filtering
\Cake\ORM\Query
_assertFieldsPresent(\Cake\ORM\Query $fetchQuery, array $key)
Checks that the fetching query either has auto fields on or has the foreignKey fields selected.
If the required fields are missing, throws an exception.
\Cake\ORM\Query
$fetchQuery The association fetching query
array
$key The foreign key fields to check
InvalidArgumentException
_buildQuery(array $options)
Auxiliary function to construct a new Query object to return all the records in the target table that are associated to those specified in $options from the source table
array
$options options accepted by eagerLoader()
\Cake\ORM\Query
InvalidArgumentException
_buildResultMap(\Cake\ORM\Query $fetchQuery, array $options)
Builds an array containing the results from fetchQuery indexed by the foreignKey value corresponding to this association.
\Cake\ORM\Query
$fetchQuery The query to get results from
array
$options The options passed to the eager loader
array
_buildSubquery(\Cake\ORM\Query $query)
Builds a query to be used as a condition for filtering records in the target table, it is constructed by cloning the original query that was used to load records in the source table.
\Cake\ORM\Query
$query the original query used to load source records
\Cake\ORM\Query
_createTupleCondition(\Cake\ORM\Query $query, array $keys, mixed $filter, mixed $operator)
Returns a TupleComparison object that can be used for matching all the fields from $keys with the tuple values in $filter using the provided operator.
\Cake\ORM\Query
$query Target table's query
string[]
$keys the fields that should be used for filtering
mixed
$filter the value that should be used to match for $key
string
$operator The operator for comparing the tuples
\Cake\Database\Expression\TupleComparison
_defaultOptions()
Returns the default options to use for the eagerLoader
array
_extractFinder(mixed $finderData)
Helper method to infer the requested finder and its options.
Returns the inferred options from the finder $type.
The following will call the finder 'translations' with the value of the finder as its options: $query->contain(['Comments' => ['finder' => ['translations']]]); $query->contain(['Comments' => ['finder' => ['translations' => []]]]); $query->contain(['Comments' => ['finder' => ['translations' => ['locales' => ['en_US']]]]]);
string|array
$finderData The finder name or an array having the name as key and options as value.
array
_linkField(array $options)
Generates a string used as a table field that contains the values upon which the filter should be applied
array
$options The options for getting the link field.
string|string[]
RuntimeException
_multiKeysInjector(array $resultMap, array $sourceKeys, string $nestKey)
Returns a callable to be used for each row in a query result set for injecting the eager loaded rows when the matching needs to be done with multiple foreign keys
array
$resultMap A keyed arrays containing the target table
string[]
$sourceKeys An array with aliased keys to match
string
$nestKey The key under which results should be nested
\Closure
_resultInjector(\Cake\ORM\Query $fetchQuery, array $resultMap, array $options)
Returns a callable to be used for each row in a query result set for injecting the eager loaded rows
\Cake\ORM\Query
$fetchQuery the Query used to fetch results
array
$resultMap an array with the foreignKey as keys and the corresponding target table results as value.
array
$options The options passed to the eagerLoader method
\Closure
_subqueryFields(\Cake\ORM\Query $query)
Calculate the fields that need to participate in a subquery.
Normally this includes the binding key columns. If there is a an ORDER BY, those columns are also included as the fields may be calculated or constant values, that need to be present to ensure the correct association data is loaded.
\Cake\ORM\Query
$query The query to get fields from.
array
The list of fields for the subquery.
buildEagerLoader(array $options)
Returns a callable that can be used for injecting association results into a given iterator. The options accepted by this method are the same as Association::eagerLoader()
array
$options Same options as Association::eagerLoader()
\Closure
The alias of the association loading the results
string
The type of the association triggering the load
string
The binding key for the source association.
string
A callable that will return a query object used for loading the association results
callable
The foreignKey to the target association
string|array
The sorting options for loading the association
string
The alias of the source association
string
The strategy to use for loading, either select or subquery
string
The alias of the target association
string
© 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.Association.Loader.SelectLoader.html