class ManyManyThroughQueryManipulator implements DataQueryManipulator

Injected into DataQuery to augment getFinalisedQuery() with a join table

Traits

A class that can be instantiated or replaced via DI

Methods

static Injectable
create(array $args)

An implementation of the factory method, allows you to create an instance of a class

static Injectable
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

__construct(string $joinClass, string $localKey, string $foreignKey, string $foreignClass = null, string $parentClass = null)

Build query manipulator for a given join table. Additional parameters (foreign key, etc) will be inferred at evaluation from query parameters set via the ManyManyThroughList

string
getJoinClass()

No description

$this
setJoinClass(mixed $joinClass)

No description

string
getLocalKey()

No description

$this
setLocalKey(string $localKey)

No description

string
getForeignKey()

No description

string
getForeignIDKey()

Gets ID key name for foreign key component

string|null
getForeignClassKey()

Gets Class key name for foreign key component (or null if none)

$this
setForeignKey(string $foreignKey)

No description

getParentRelationship(DataQuery $query)

Get has_many relationship between parent and join table (for a given DataQuery)

mixed
extractInheritableQueryParameters(DataQuery $query)

Calculate the query parameters that should be inherited from the base many_many to the nested has_many list.

string
getJoinAlias()

Get name of join table alias for use in queries.

beforeGetFinalisedQuery(DataQuery $dataQuery, array $queriedColumns = [], SQLSelect $sqlSelect)

Invoked prior to getFinalisedQuery()

afterGetFinalisedQuery(DataQuery $dataQuery, array $queriedColumns = [], SQLSelect $sqlQuery)

Invoked after getFinalisedQuery()

string
getForeignClass()

No description

$this
setForeignClass(string $foreignClass)

No description

string
getParentClass()

No description

setParentClass(string $parentClass)

No description

Details

in Injectable at line 26
static Injectable create(array $args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create('SiteTree'); $list = SiteTree::get();

Parameters

array $args

Return Value

Injectable

in Injectable at line 43
static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class Optional classname to create, if the called class should not be used

Return Value

Injectable The singleton instance

at line 65
__construct(string $joinClass, string $localKey, string $foreignKey, string $foreignClass = null, string $parentClass = null)

Build query manipulator for a given join table. Additional parameters (foreign key, etc) will be inferred at evaluation from query parameters set via the ManyManyThroughList

Parameters

string $joinClass Class name of the joined dataobject record
string $localKey The key in the join table that maps to the dataClass' PK.
string $foreignKey The key in the join table that maps to joined class' PK.
string $foreignClass the 'from' class name
string $parentClass Name of parent class. Subclass of $foreignClass

at line 85
string getJoinClass()

Return Value

string

at line 94
$this setJoinClass(mixed $joinClass)

Parameters

mixed $joinClass

Return Value

$this

at line 103
string getLocalKey()

Return Value

string

at line 112
$this setLocalKey(string $localKey)

Parameters

string $localKey

Return Value

$this

at line 121
string getForeignKey()

Return Value

string

at line 131
string getForeignIDKey()

Gets ID key name for foreign key component

Return Value

string

at line 145
string|null getForeignClassKey()

Gets Class key name for foreign key component (or null if none)

Return Value

string|null

at line 157
$this setForeignKey(string $foreignKey)

Parameters

string $foreignKey

Return Value

$this

at line 169
HasManyList getParentRelationship(DataQuery $query)

Get has_many relationship between parent and join table (for a given DataQuery)

Parameters

DataQuery $query

Return Value

HasManyList

at line 199
mixed extractInheritableQueryParameters(DataQuery $query)

Calculate the query parameters that should be inherited from the base many_many to the nested has_many list.

Parameters

DataQuery $query

Return Value

mixed

at line 222
string getJoinAlias()

Get name of join table alias for use in queries.

Return Value

string

at line 234
beforeGetFinalisedQuery(DataQuery $dataQuery, array $queriedColumns = [], SQLSelect $sqlSelect)

Invoked prior to getFinalisedQuery()

Parameters

DataQuery $dataQuery
array $queriedColumns
SQLSelect $sqlSelect

at line 284
afterGetFinalisedQuery(DataQuery $dataQuery, array $queriedColumns = [], SQLSelect $sqlQuery)

Invoked after getFinalisedQuery()

Parameters

DataQuery $dataQuery
array $queriedColumns
SQLSelect $sqlQuery

at line 297
string getForeignClass()

Return Value

string

at line 306
$this setForeignClass(string $foreignClass)

Parameters

string $foreignClass

Return Value

$this

at line 315
string getParentClass()

Return Value

string

at line 324
ManyManyThroughQueryManipulator setParentClass(string $parentClass)

Parameters

string $parentClass

Return Value

ManyManyThroughQueryManipulator