On this page
Trait ExternalAssociationTrait
Represents a type of association that that needs to be recovered by performing an extra query.
- Cake\ORM\Association\ExternalAssociationTrait uses Cake\ORM\Association\SelectableAssociationTrait
Direct Known Users
Cake\ORM\Association\BelongsToMany, Cake\ORM\Association\HasManyMethod Detail
_buildResultMapsource protected
_buildResultMap( mixed $fetchQuery , mixed $options )
_defaultOptionssource protected
_defaultOptions( )
Returns the default options to use for the eagerLoader
Returns
array
array
_optionssource protected
_options( array $opts )
Parse extra options passed in the constructor.
Parameters
-
array
$opts
- original list of options passed in constructor
canBeJoinedsource public
canBeJoined( array $options [] )
Whether this association can be expressed directly in a query join
Parameters
-
array
$options
optional [] - custom options key that could alter the return value
Returns
boolean
if the 'matching' key in $option is true then this function will return true, false otherwise
defaultRowValuesource public
defaultRowValue( mixed $row , mixed $joined )
foreignKeysource public
foreignKey( string|null $key null )
Sets the name of the field representing the foreign key to the source table. If no parameters are passed current field is returned
Parameters
-
string|null
$key
optional null - the key to be used to link both tables together
Returns
string
string
sortsource public
sort( mixed $sort null )
Sets the sort order in which target records should be returned. If no arguments are passed the currently configured value is returned
Parameters
-
mixed
$sort
optional null - A find() compatible order clause
Returns
mixed
mixed
Methods used from Cake\ORM\Association\SelectableAssociationTrait
_addFilteringConditionsource protected
_addFilteringCondition( Cake\ORM\Query $query , string|array $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.
Parameters
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
Returns
Cake\ORM\Query
\Cake\ORM\Query
_addFilteringJoinsource public
_addFilteringJoin( Cake\ORM\Query $query , string $key , Cake\ORM\Query $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.
Parameters
Cake\ORM\Query
$query
- Target table's query
-
string
$key
- the fields that should be used for filtering
Cake\ORM\Query
$subquery
- The Subquery to use for filtering
Returns
Cake\ORM\Query
\Cake\ORM\Query
_buildQuerysource protected
_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
Parameters
-
array
$options
- options accepted by eagerLoader()
Returns
Cake\ORM\Query
\Cake\ORM\Query
Throws
InvalidArgumentException
When a key is required for associations but not selected.
_buildSubquerysource protected
_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.
Parameters
Cake\ORM\Query
$query
- the original query used to load source records
Returns
Cake\ORM\Query
\Cake\ORM\Query
_createTupleConditionsource protected
_createTupleCondition( Cake\ORM\Query $query , array $keys , mixed $filter , string $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.
Parameters
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
Returns
Cake\Database\Expression\TupleComparison
\Cake\Database\Expression\TupleComparison
_linkFieldsource abstract protected
_linkField( array $options )
Generates a string used as a table field that contains the values upon which the filter should be applied
Parameters
-
array
$options
- The options for getting the link field.
Returns
string|array
string|array
_multiKeysInjectorsource protected
_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
Parameters
-
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
Returns
Closure
\Closure
_resultInjectorsource protected
_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
Parameters
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
Returns
Closure
\Closure
_subqueryFieldssource protected
_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.
Parameters
Cake\ORM\Query
$query
- The query to get fields from.
Returns
array
The list of fields for the subquery.
eagerLoadersource public
eagerLoader( array $options )
requiresKeyssource public
requiresKeys( array $options [] )
Returns true if the eager loading process will require a set of the owning table's binding keys in order to use them as a filter in the finder query.
Parameters
-
array
$options
optional [] - The options containing the strategy to be used.
Returns
boolean
true if a list of keys will be required
Properties summary
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Association.ExternalAssociationTrait.html