QueriesRelationships
trait QueriesRelationships mixin Builder (View source)
Methods
Add nested relationship count / exists conditions to the query.
Add a relationship count / exists condition to the query with an "or".
Add a relationship count / exists condition to the query.
Add a relationship count / exists condition to the query with an "or".
Add a relationship count / exists condition to the query with where clauses.
Add a relationship count / exists condition to the query with where clauses and an "or".
Add a relationship count / exists condition to the query with where clauses.
Add a relationship count / exists condition to the query with where clauses and an "or".
Get the BelongsTo relationship for a single polymorphic type.
Add a polymorphic relationship count / exists condition to the query with an "or".
Add a polymorphic relationship count / exists condition to the query.
Add a polymorphic relationship count / exists condition to the query with an "or".
Add a polymorphic relationship count / exists condition to the query with where clauses.
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
Add a polymorphic relationship count / exists condition to the query with where clauses.
Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
Add a basic where clause to a relationship query.
Add a basic where clause to a relationship query and eager-load the relationship with the same conditions.
Add an "or where" clause to a relationship query.
Add a basic count / exists condition to a relationship query.
Add an "or where" clause to a relationship query.
Add a polymorphic relationship condition to the query with a where clause.
Add a polymorphic relationship condition to the query with an "or where" clause.
Add a polymorphic relationship condition to the query with a doesn't have clause.
Add a polymorphic relationship condition to the query with an "or doesn't have" clause.
Add a morph-to relationship condition to the query.
Add a not morph-to relationship condition to the query.
Add a morph-to relationship condition to the query with an "or where" clause.
Add a not morph-to relationship condition to the query with an "or where" clause.
Add a "belongs to" relationship where clause to the query.
Add a "BelongsTo" relationship with an "or where" clause to the query.
Add subselect queries to include an aggregate value for a relationship.
Get the relation hashed column name for the given column and relation.
Add subselect queries to count the relations.
Add subselect queries to include the max of the relation's column.
Add subselect queries to include the min of the relation's column.
Add subselect queries to include the sum of the relation's column.
Add subselect queries to include the average of the relation's column.
Add subselect queries to include the existence of related models.
Add the "has" condition where clause to the query.
Merge the where constraints from another query to the current query.
Updates the table name for any columns with a new qualified name.
Add a sub-query count clause to this query.
Get the "has relation" base query instance.
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', $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(string $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 the 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<int,string> $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<int,string> $types, string $operator = '>=', int $count = 1)
        
    
    Add a polymorphic relationship count / exists condition to the query with an "or".
        
                            $this
    doesntHaveMorph($relation, string|array<int,string> $types, string $boolean = 'and', Closure|null $callback = null)
        
    
    Add a polymorphic relationship count / exists condition to the query.
        
                            $this
    orDoesntHaveMorph($relation, string|array<int,string> $types)
        
    
    Add a polymorphic relationship count / exists condition to the query with an "or".
        
                            $this
    whereHasMorph($relation, string|array<int,string> $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<int,string> $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<int,string> $types, Closure|null $callback = null)
        
    
    Add a polymorphic relationship count / exists condition to the query with where clauses.
        
                            $this
    orWhereDoesntHaveMorph($relation, string|array<int,string> $types, Closure|null $callback = null)
        
    
    Add a polymorphic relationship count / exists condition to the query with where clauses and an "or".
        
                            $this
    whereRelation($relation, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a basic where clause to a relationship query.
        
                            $this
    withWhereRelation($relation, Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)
        
    
    Add a basic where clause to a relationship query and eager-load the relationship with the same conditions.
        
                            $this
    orWhereRelation($relation, $column, mixed $operator = null, mixed $value = null)
        
    
    Add an "or where" clause to a relationship query.
        
                            $this
    whereDoesntHaveRelation($relation, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a basic count / exists condition to a relationship query.
        
                            $this
    orWhereDoesntHaveRelation($relation, $column, mixed $operator = null, mixed $value = null)
        
    
    Add an "or where" clause to a relationship query.
        
                            $this
    whereMorphRelation($relation, string|array<int,string> $types, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a polymorphic relationship condition to the query with a where clause.
        
                            $this
    orWhereMorphRelation($relation, string|array<int,string> $types, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a polymorphic relationship condition to the query with an "or where" clause.
        
                            $this
    whereMorphDoesntHaveRelation($relation, string|array<int,string> $types, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a polymorphic relationship condition to the query with a doesn't have clause.
        
                            $this
    orWhereMorphDoesntHaveRelation($relation, string|array<int,string> $types, $column, mixed $operator = null, mixed $value = null)
        
    
    Add a polymorphic relationship condition to the query with an "or doesn't have" clause.
        
                            $this
    whereMorphedTo($relation, Model|Model>|string|null $model, $boolean = 'and')
        
    
    Add a morph-to relationship condition to the query.
        
                            $this
    whereNotMorphedTo($relation, Model|Model>|string $model, $boolean = 'and')
        
    
    Add a not morph-to relationship condition to the query.
        
                            $this
    orWhereMorphedTo($relation, Model|Model>|string|null $model)
        
    
    Add a morph-to relationship condition to the query with an "or where" clause.
        
                            $this
    orWhereNotMorphedTo($relation, Model|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 a "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.