QueriesRelationships
trait QueriesRelationships mixin Builder (View source)
Methods
| $this | has($relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add a relationship count / exists condition to the query. | |
| $this | hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add nested relationship count / exists conditions to the query. | |
| $this | orHas($relation, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with an "or". | |
| $this | doesntHave($relation, string $boolean = 'and', Closure|null $callback = null)
Add a relationship count / exists condition to the query. | |
| $this | orDoesntHave($relation)
Add a relationship count / exists condition to the query with an "or". | |
| $this | whereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses. | |
| $this | withWhereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses. | |
| $this | orWhereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses and an "or". | |
| $this | whereDoesntHave($relation, Closure|null $callback = null)
Add a relationship count / exists condition to the query with where clauses. | |
| $this | orWhereDoesntHave($relation, Closure|null $callback = null)
Add a relationship count / exists condition to the query with where clauses and an "or". | |
| $this | hasMorph($relation, string|array $types, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query. | |
| TDeclaringModel> | getBelongsToRelation(MorphTo $relation, TRelatedModel> $type)
Get the BelongsTo relationship for a single polymorphic type. | |
| $this | orHasMorph($relation, string|array $types, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with an "or". | |
| $this | doesntHaveMorph($relation, string|array $types, string $boolean = 'and', Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query. | |
| $this | orDoesntHaveMorph($relation, string|array $types)
Add a polymorphic relationship count / exists condition to the query with an "or". | |
| $this | whereHasMorph($relation, string|array $types, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses. | |
| $this | orWhereHasMorph($relation, string|array $types, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". | |
| $this | whereDoesntHaveMorph($relation, string|array $types, Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses. | |
| $this | orWhereDoesntHaveMorph($relation, string|array $types, Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". | |
| $this | whereRelation($relation, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a basic where clause to a relationship query. | |
| $this | orWhereRelation($relation, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add an "or where" clause to a relationship query. | |
| $this | whereMorphRelation($relation, string|array $types, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a polymorphic relationship condition to the query with a where clause. | |
| $this | orWhereMorphRelation($relation, string|array $types, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a polymorphic relationship condition to the query with an "or where" clause. | |
| $this | whereMorphedTo($relation, Model|string|null $model, $boolean = 'and')
Add a morph-to relationship condition to the query. | |
| $this | whereNotMorphedTo($relation, Model|string $model, $boolean = 'and')
Add a not morph-to relationship condition to the query. | |
| $this | orWhereMorphedTo($relation, Model|string|null $model)
Add a morph-to relationship condition to the query with an "or where" clause. | |
| $this | orWhereNotMorphedTo($relation, Model|string $model)
Add a not morph-to relationship condition to the query with an "or where" clause. | |
| $this | whereBelongsTo(Model|Model> $related, string|null $relationshipName = null, string $boolean = 'and')
Add a "belongs to" relationship where clause to the query. | |
| $this | orWhereBelongsTo(Model $related, string|null $relationshipName = null)
Add an "BelongsTo" relationship with an "or where" clause to the query. | |
| $this | withAggregate(mixed $relations, Expression|string $column, string $function = null)
Add subselect queries to include an aggregate value for a relationship. | |
| string | getRelationHashedColumn(string $column, $relation)
Get the relation hashed column name for the given column and relation. | |
| $this | withCount(mixed $relations)
Add subselect queries to count the relations. | |
| $this | withMax(string|array $relation, Expression|string $column)
Add subselect queries to include the max of the relation's column. | |
| $this | withMin(string|array $relation, Expression|string $column)
Add subselect queries to include the min of the relation's column. | |
| $this | withSum(string|array $relation, Expression|string $column)
Add subselect queries to include the sum of the relation's column. | |
| $this | withAvg(string|array $relation, Expression|string $column)
Add subselect queries to include the average of the relation's column. | |
| $this | withExists(string|array $relation)
Add subselect queries to include the existence of related models. | |
| $this | addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Add the "has" condition where clause to the query. | |
| $this | mergeConstraintsFrom(Builder $from)
Merge the where constraints from another query to the current query. | |
| array | requalifyWhereTables(array $wheres, string $from, string $to)
Updates the table name for any columns with a new qualified name. | |
| $this | addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and')
Add a sub-query count clause to this query. | |
| 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
$this has($relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add a relationship count / exists condition to the query.
protected $this 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.
$this orHas($relation, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with an "or".
$this doesntHave($relation, string $boolean = 'and', Closure|null $callback = null)
Add a relationship count / exists condition to the query.
$this orDoesntHave($relation)
Add a relationship count / exists condition to the query with an "or".
$this whereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses.
$this withWhereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses.
Also load the relationship with same condition.
$this orWhereHas($relation, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a relationship count / exists condition to the query with where clauses and an "or".
$this whereDoesntHave($relation, Closure|null $callback = null)
Add a relationship count / exists condition to the query with where clauses.
$this orWhereDoesntHave($relation, Closure|null $callback = null)
Add a relationship count / exists condition to the query with where clauses and an "or".
$this hasMorph($relation, string|array $types, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query.
protected TDeclaringModel> getBelongsToRelation(MorphTo $relation, TRelatedModel> $type)
Get the BelongsTo relationship for a single polymorphic type.
$this orHasMorph($relation, string|array $types, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with an "or".
$this doesntHaveMorph($relation, string|array $types, string $boolean = 'and', Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query.
$this orDoesntHaveMorph($relation, string|array $types)
Add a polymorphic relationship count / exists condition to the query with an "or".
$this whereHasMorph($relation, string|array $types, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses.
$this orWhereHasMorph($relation, string|array $types, Closure|null $callback = null, string $operator = '>=', int $count = 1)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
$this whereDoesntHaveMorph($relation, string|array $types, Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses.
$this orWhereDoesntHaveMorph($relation, string|array $types, Closure|null $callback = null)
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
$this whereRelation($relation, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a basic where clause to a relationship query.
$this orWhereRelation($relation, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add an "or where" clause to a relationship query.
$this whereMorphRelation($relation, string|array $types, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a polymorphic relationship condition to the query with a where clause.
$this orWhereMorphRelation($relation, string|array $types, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
Add a polymorphic relationship condition to the query with an "or where" clause.
$this whereMorphedTo($relation, Model|string|null $model, $boolean = 'and')
Add a morph-to relationship condition to the query.
$this whereNotMorphedTo($relation, Model|string $model, $boolean = 'and')
Add a not morph-to relationship condition to the query.
$this orWhereMorphedTo($relation, Model|string|null $model)
Add a morph-to relationship condition to the query with an "or where" clause.
$this orWhereNotMorphedTo($relation, Model|string $model)
Add a not morph-to relationship condition to the query with an "or where" clause.
$this whereBelongsTo(Model|Model> $related, string|null $relationshipName = null, string $boolean = 'and')
Add a "belongs to" relationship where clause to the query.
$this orWhereBelongsTo(Model $related, string|null $relationshipName = null)
Add an "BelongsTo" relationship with an "or where" clause to the query.
$this withAggregate(mixed $relations, Expression|string $column, string $function = null)
Add subselect queries to include an aggregate value for a relationship.
protected string getRelationHashedColumn(string $column, $relation)
Get the relation hashed column name for the given column and relation.
$this withCount(mixed $relations)
Add subselect queries to count the relations.
$this withMax(string|array $relation, Expression|string $column)
Add subselect queries to include the max of the relation's column.
$this withMin(string|array $relation, Expression|string $column)
Add subselect queries to include the min of the relation's column.
$this withSum(string|array $relation, Expression|string $column)
Add subselect queries to include the sum of the relation's column.
$this withAvg(string|array $relation, Expression|string $column)
Add subselect queries to include the average of the relation's column.
$this withExists(string|array $relation)
Add subselect queries to include the existence of related models.
protected $this addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Add the "has" condition where clause to the query.
$this mergeConstraintsFrom(Builder $from)
Merge the where constraints from another query to the current query.
protected array requalifyWhereTables(array $wheres, string $from, string $to)
Updates the table name for any columns with a new qualified name.
protected $this addWhereCountQuery(Builder $query, string $operator = '>=', int $count = 1, string $boolean = 'and')
Add a sub-query count clause to this query.
protected 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/11.x/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.html