PHP Класс EloquentFilter\ModelFilter

Показать файл Открыть проект

Открытые свойства

Свойство Тип Описание
$relations array Related Models that have ModelFilters as well as the method on the ModelFilter As [relatedModel => [input_key1, input_key2]].

Защищенные свойства (Protected)

Свойство Тип Описание
$allRelations array Container for all relations (local and related ModelFilters).
$drop_id boolean Drop _id from the end of input keys when referencing methods.
$input array Array of input to filter.
$localRelatedFilters array (This allows us to not be required to define a filter for the related models).
$query Illuminate\Database\Eloquent\Builder
$relationsEnabled boolean This is to be able to bypass relations if we are filtering a joined table.

Открытые методы

Метод Описание
__call ( $method, $args ) Handle calling methods on the query object.
__construct ( $query, array $input = [], boolean $relationsEnabled = true ) ModelFilter constructor.
addRelated ( $relation, Closure $closure ) Locally defines a relation filter method that will be called in the context of the related model.
callRelatedLocalSetup ( $related, $query )
disableRelations ( ) Disable querying relations (Mainly for joined tables as the related model isn't queried).
dropIdSuffix ( null $bool = null ) : boolean Set to drop _id from input. Mainly for testing.
enableRelations ( ) Enable querying relations.
filterInput ( ) Filter with input array.
filterJoinedRelation ( $related ) Run the filter on models that already have their tables joined.
filterRelations ( ) Filter relationships defined in $this->relations array.
filterUnjoinedRelation ( $related ) Filters by a relationship that isn't joined by using that relation's ModelFilter.
getAllRelations ( ) : array Returns all local relations and relations requiring other Model's Filter's.
getFilterMethod ( $key ) : string
getJoinedTables ( ) : array Gets all the joined tables.
getLocalRelation ( string $related ) : array
getRelatedFilter ( $relation ) : mixed Get the model filter of a related model.
getRelatedFilterInput ( $related ) : array Get input to pass to a related Model's Filter.
getRelatedModel ( $relation ) : Model Get an empty instance of a related model.
getRelatedTable ( $relation ) : string Get the table name from a relationship.
getRelationConstraints ( string $relation ) : array Get all input to pass through related filters and local closures as an array.
handle ( ) : Builder Handle all filters.
input ( null $key = null, null $default = null ) : array | mixed | null Retrieve input by key or all input as array.
push ( $key, null $value = null ) Add values to filter by if called in setup().
related ( $relation, $column, null $operator = null, null $value = null, string $boolean = 'and' ) Add a where constraint to a relationship.
relationIsFilterable ( $relation ) : boolean Check to see if there is input or locally defined methods for the given relation.
relationIsJoined ( $relation ) : boolean Checks if the relation to filter's table is already joined.
relationIsLocal ( $related ) : boolean Checks to see if there are locally defined relations to filter.
relationUsesFilter ( $related ) : boolean Checks if there is input that should be passed to a related Model Filter.
relationsEnabled ( ) : boolean Checks if filtering by relations is enabled.
removeEmptyInput ( array $input ) : array Remove empty strings from the input array.

Описание методов

__call() публичный Метод

Handle calling methods on the query object.
public __call ( $method, $args )
$method
$args

__construct() публичный Метод

ModelFilter constructor.
public __construct ( $query, array $input = [], boolean $relationsEnabled = true )
$query
$input array
$relationsEnabled boolean

addRelated() публичный Метод

Locally defines a relation filter method that will be called in the context of the related model.
public addRelated ( $relation, Closure $closure )
$relation
$closure Closure

callRelatedLocalSetup() публичный Метод

public callRelatedLocalSetup ( $related, $query )

disableRelations() публичный Метод

Disable querying relations (Mainly for joined tables as the related model isn't queried).
public disableRelations ( )

dropIdSuffix() публичный Метод

Set to drop _id from input. Mainly for testing.
public dropIdSuffix ( null $bool = null ) : boolean
$bool null
Результат boolean

enableRelations() публичный Метод

Enable querying relations.
public enableRelations ( )

filterInput() публичный Метод

Filter with input array.
public filterInput ( )

filterJoinedRelation() публичный Метод

Run the filter on models that already have their tables joined.
public filterJoinedRelation ( $related )
$related

filterRelations() публичный Метод

Filter relationships defined in $this->relations array.
public filterRelations ( )

filterUnjoinedRelation() публичный Метод

Filters by a relationship that isn't joined by using that relation's ModelFilter.
public filterUnjoinedRelation ( $related )
$related

getAllRelations() публичный Метод

Returns all local relations and relations requiring other Model's Filter's.
public getAllRelations ( ) : array
Результат array

getFilterMethod() публичный Метод

public getFilterMethod ( $key ) : string
$key
Результат string

getJoinedTables() публичный Метод

Gets all the joined tables.
public getJoinedTables ( ) : array
Результат array

getLocalRelation() публичный Метод

public getLocalRelation ( string $related ) : array
$related string
Результат array

getRelatedFilter() публичный Метод

Get the model filter of a related model.
public getRelatedFilter ( $relation ) : mixed
$relation
Результат mixed

getRelatedFilterInput() публичный Метод

Get input to pass to a related Model's Filter.
public getRelatedFilterInput ( $related ) : array
$related
Результат array

getRelatedModel() публичный Метод

Get an empty instance of a related model.
public getRelatedModel ( $relation ) : Model
$relation
Результат Illuminate\Database\Eloquent\Model

getRelatedTable() публичный Метод

Get the table name from a relationship.
public getRelatedTable ( $relation ) : string
$relation
Результат string

getRelationConstraints() публичный Метод

Get all input to pass through related filters and local closures as an array.
public getRelationConstraints ( string $relation ) : array
$relation string
Результат array

handle() публичный Метод

Handle all filters.
public handle ( ) : Builder
Результат Illuminate\Database\Eloquent\Builder

input() публичный Метод

Retrieve input by key or all input as array.
public input ( null $key = null, null $default = null ) : array | mixed | null
$key null
$default null
Результат array | mixed | null

push() публичный Метод

Will ONLY filter relations if called on additional method.
public push ( $key, null $value = null )
$key
$value null

relationIsFilterable() публичный Метод

Check to see if there is input or locally defined methods for the given relation.
public relationIsFilterable ( $relation ) : boolean
$relation
Результат boolean

relationIsJoined() публичный Метод

Checks if the relation to filter's table is already joined.
public relationIsJoined ( $relation ) : boolean
$relation
Результат boolean

relationIsLocal() публичный Метод

Checks to see if there are locally defined relations to filter.
public relationIsLocal ( $related ) : boolean
$related
Результат boolean

relationUsesFilter() публичный Метод

Checks if there is input that should be passed to a related Model Filter.
public relationUsesFilter ( $related ) : boolean
$related
Результат boolean

relationsEnabled() публичный Метод

Checks if filtering by relations is enabled.
public relationsEnabled ( ) : boolean
Результат boolean

removeEmptyInput() публичный Метод

Remove empty strings from the input array.
public removeEmptyInput ( array $input ) : array
$input array
Результат array

Описание свойств

$allRelations защищенное свойство

Container for all relations (local and related ModelFilters).
protected array $allRelations
Результат array

$drop_id защищенное свойство

Drop _id from the end of input keys when referencing methods.
protected bool $drop_id
Результат boolean

$input защищенное свойство

Array of input to filter.
protected array $input
Результат array

$localRelatedFilters защищенное свойство

(This allows us to not be required to define a filter for the related models).
protected array $localRelatedFilters
Результат array

$query защищенное свойство

protected Builder,Illuminate\Database\Eloquent $query
Результат Illuminate\Database\Eloquent\Builder

$relations публичное свойство

Related Models that have ModelFilters as well as the method on the ModelFilter As [relatedModel => [input_key1, input_key2]].
public array $relations
Результат array

$relationsEnabled защищенное свойство

This is to be able to bypass relations if we are filtering a joined table.
protected bool $relationsEnabled
Результат boolean