QueriesRelationships
trait QueriesRelationships (View source)
Methods
Builder|QueriesRelationships | has(Relation|string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null) Add a relationship count / exists condition to the query. | |
Builder|QueriesRelationships | hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null) Add nested relationship count / exists conditions to the query. | |
Builder|QueriesRelationships | orHas(string $relation, string $operator = '>=', int $count = 1) Add a relationship count / exists condition to the query with an "or". | |
Builder|QueriesRelationships | doesntHave(string $relation, string $boolean = 'and', Closure $callback = null) Add a relationship count / exists condition to the query. | |
Builder|QueriesRelationships | orDoesntHave(string $relation) Add a relationship count / exists condition to the query with an "or". | |
Builder|QueriesRelationships | whereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1) Add a relationship count / exists condition to the query with where clauses. | |
Builder|QueriesRelationships | orWhereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1) Add a relationship count / exists condition to the query with where clauses and an "or". | |
Builder|QueriesRelationships | whereDoesntHave(string $relation, Closure $callback = null) Add a relationship count / exists condition to the query with where clauses. | |
Builder|QueriesRelationships | orWhereDoesntHave(string $relation, Closure $callback = null) Add a relationship count / exists condition to the query with where clauses and an "or". | |
Builder|QueriesRelationships | hasMorph(MorphTo|string $relation, string|array $types, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null) Add a polymorphic relationship count / exists condition to the query. | |
BelongsTo | getBelongsToRelation(MorphTo $relation, string $type) Get the BelongsTo relationship for a single polymorphic type. | |
Builder|QueriesRelationships | orHasMorph(MorphTo|string $relation, string|array $types, string $operator = '>=', int $count = 1) Add a polymorphic relationship count / exists condition to the query with an "or". | |
Builder|QueriesRelationships | doesntHaveMorph(MorphTo|string $relation, string|array $types, string $boolean = 'and', Closure $callback = null) Add a polymorphic relationship count / exists condition to the query. | |
Builder|QueriesRelationships | orDoesntHaveMorph(MorphTo|string $relation, string|array $types) Add a polymorphic relationship count / exists condition to the query with an "or". | |
Builder|QueriesRelationships | whereHasMorph(MorphTo|string $relation, string|array $types, Closure $callback = null, string $operator = '>=', int $count = 1) Add a polymorphic relationship count / exists condition to the query with where clauses. | |
Builder|QueriesRelationships | orWhereHasMorph(MorphTo|string $relation, string|array $types, Closure $callback = null, string $operator = '>=', int $count = 1) Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". | |
Builder|QueriesRelationships | whereDoesntHaveMorph(MorphTo|string $relation, string|array $types, Closure $callback = null) Add a polymorphic relationship count / exists condition to the query with where clauses. | |
Builder|QueriesRelationships | orWhereDoesntHaveMorph(MorphTo|string $relation, string|array $types, Closure $callback = null) Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". | |
$this | withAggregate(mixed $relations, string $column, string $function = null) Add subselect queries to include an aggregate value for a relationship. | |
$this | withCount(mixed $relations) Add subselect queries to count the relations. | |
$this | withMax(string $relation, string $column) Add subselect queries to include the max of the relation's column. | |
$this | withMin(string $relation, string $column) Add subselect queries to include the min of the relation's column. | |
$this | withSum(string $relation, string $column) Add subselect queries to include the sum of the relation's column. | |
$this | withAvg(string $relation, string $column) Add subselect queries to include the average of the relation's column. | |
Builder|QueriesRelationships | addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean) Add the "has" condition where clause to the query. | |
Builder|QueriesRelationships | mergeConstraintsFrom(Builder $from) Merge the where constraints from another query to the current query. | |
$this | addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and') Add a sub-query count clause to this query. | |
Relation | getRelationWithoutConstraints(string $relation) Get the "has relation" base query instance. | |
bool | canUseExistsForExistenceCheck(string $operator, int $count) Check if we can run an "exists" query to optimize performance. |
Details
Builder|QueriesRelationships has(Relation|string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null)
Add a relationship count / exists condition to the query.
protected Builder|QueriesRelationships hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add nested relationship count / exists conditions to the query.
Sets up recursive call to whereHas until we finish the nested relation.
Builder|QueriesRelationships orHas(string $relation, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with an "or".
Builder|QueriesRelationships doesntHave(string $relation, string $boolean = 'and', Closure $callback = null)
Add a relationship count / exists condition to the query.
Builder|QueriesRelationships orDoesntHave(string $relation)
Add a relationship count / exists condition to the query with an "or".
Builder|QueriesRelationships whereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses.
Builder|QueriesRelationships orWhereHas(string $relation, Closure $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses and an "or".
Builder|QueriesRelationships whereDoesntHave(string $relation, Closure $callback = null)
Add a relationship count / exists condition to the query with where clauses.
Builder|QueriesRelationships orWhereDoesntHave(string $relation, Closure $callback = null)
Add a relationship count / exists condition to the query with where clauses and an "or".
Builder|QueriesRelationships hasMorph(MorphTo|string $relation, string|array $types, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null)
Add a polymorphic relationship count / exists condition to the query.
protected BelongsTo getBelongsToRelation(MorphTo $relation, string $type)
Get the BelongsTo relationship for a single polymorphic type.
Builder|QueriesRelationships orHasMorph(MorphTo|string $relation, string|array $types, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with an "or".
Builder|QueriesRelationships doesntHaveMorph(MorphTo|string $relation, string|array $types, string $boolean = 'and', Closure $callback = null)
Add a polymorphic relationship count / exists condition to the query.
Builder|QueriesRelationships orDoesntHaveMorph(MorphTo|string $relation, string|array $types)
Add a polymorphic relationship count / exists condition to the query with an "or".
Builder|QueriesRelationships whereHasMorph(MorphTo|string $relation, string|array $types, Closure $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses.
Builder|QueriesRelationships orWhereHasMorph(MorphTo|string $relation, string|array $types, Closure $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
Builder|QueriesRelationships whereDoesntHaveMorph(MorphTo|string $relation, string|array $types, Closure $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses.
Builder|QueriesRelationships orWhereDoesntHaveMorph(MorphTo|string $relation, string|array $types, Closure $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
$this withAggregate(mixed $relations, string $column, string $function = null)
Add subselect queries to include an aggregate value for a relationship.
$this withCount(mixed $relations)
Add subselect queries to count the relations.
$this withMax(string $relation, string $column)
Add subselect queries to include the max of the relation's column.
$this withMin(string $relation, string $column)
Add subselect queries to include the min of the relation's column.
$this withSum(string $relation, string $column)
Add subselect queries to include the sum of the relation's column.
$this withAvg(string $relation, string $column)
Add subselect queries to include the average of the relation's column.
protected Builder|QueriesRelationships addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Add the "has" condition where clause to the query.
Builder|QueriesRelationships mergeConstraintsFrom(Builder $from)
Merge the where constraints from another query to the current query.
protected $this addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and')
Add a sub-query count clause to this query.
protected Relation getRelationWithoutConstraints(string $relation)
Get the "has relation" base query instance.
protected bool canUseExistsForExistenceCheck(string $operator, int $count)
Check if we can run an "exists" query to optimize performance.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.html