$alias
$alias : string
The alias of the association loading the results
Implements the logic for loading an association using a SELECT query and a pivot table
$junctionAssoc : \Cake\ORM\Association\HasMany
The junction association instance
$junctionConditions : string|array|\Cake\Database\ExpressionInterface|callable|null
Custom conditions for the junction association
buildEagerLoader(array $options) : \Closure
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 |
_buildQuery(array $options) : \Cake\ORM\Query
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.
This is used for eager loading records on the target table based on conditions.
array | $options | options accepted by eagerLoader() |
When a key is required for associations but not selected.
_extractFinder(string|array $finderData) : array
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. |
_assertFieldsPresent(\Cake\ORM\Query $fetchQuery, array $key) : void
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 |
_addFilteringJoin(\Cake\ORM\Query $query, string|array $key, \Cake\ORM\Query $subquery) : \Cake\ORM\Query
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|array | $key | the fields that should be used for filtering |
\Cake\ORM\Query | $subquery | The Subquery to use for filtering |
_addFilteringCondition(\Cake\ORM\Query $query, string|array $key, mixed $filter) : \Cake\ORM\Query
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 |
_createTupleCondition(\Cake\ORM\Query $query, array $keys, mixed $filter, string $operator) : \Cake\Database\Expression\TupleComparison
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 |
array | $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 |
_buildSubquery(\Cake\ORM\Query $query) : \Cake\ORM\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 |
_subqueryFields(\Cake\ORM\Query $query) : array
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. |
The list of fields for the subquery.
_buildResultMap(\Cake\ORM\Query $fetchQuery, array $options) : array
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 |
when the association property is not part of the results set.
_resultInjector(\Cake\ORM\Query $fetchQuery, array $resultMap, array $options) : \Closure
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 |
_multiKeysInjector(array $resultMap, array $sourceKeys, string $nestKey) : \Closure
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 |
array | $sourceKeys | An array with aliased keys to match |
string | $nestKey | The key under which results should be nested |