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 Users
Properties summary
-
$_sort
protectedmixed
Method Summary
-
_buildResultMap() protected
-
_defaultOptions() protectedReturns the default options to use for the eagerLoader
-
_options() protectedParse extra options passed in the constructor.
-
canBeJoined() publicWhether this association can be expressed directly in a query join
-
defaultRowValue() public
-
foreignKey() public
Sets the name of the field representing the foreign key to the source table. If no parameters are passed current field is returned
-
sort() public
Sets the sort order in which target records should be returned. If no arguments are passed the currently configured value is returned
Method Detail
_buildResultMap()source protected
_buildResultMap( $fetchQuery , $options )
_defaultOptions()source protected
_defaultOptions( )
Returns the default options to use for the eagerLoader
Returns
array_options()source protected
_options( array $opts )
Parse extra options passed in the constructor.
Parameters
-
array
$opts
- original list of options passed in constructor
canBeJoined()source 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
booleanif the 'matching' key in $option is true then this function will return true, false otherwise
defaultRowValue()source public
defaultRowValue( $row , $joined )
foreignKey()source 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
stringsort()source 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
mixedMethods used from Cake\ORM\Association\SelectableAssociationTrait
_addFilteringCondition()source 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
_addFilteringJoin()source 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
_buildQuery()source 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
Throws
InvalidArgumentExceptionWhen a key is required for associations but not selected.
_buildSubquery()source 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
_createTupleCondition()source 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_linkField()source 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_multiKeysInjector()source 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_resultInjector()source 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_subqueryFields()source 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
arrayThe list of fields for the subquery.
eagerLoader()source public
eagerLoader( array $options )
requiresKeys()source 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
booleantrue if a list of keys will be required
Properties detail
© 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.2/class-Cake.ORM.Association.ExternalAssociationTrait.html