Builder
class Builder mixin Builder (View source)
Traits
Properties
| protected Builder | $query | The base query builder instance.  | 
                |
| protected Model | $model | The model being queried.  | 
                |
| protected array | $eagerLoad | The relationships that should be eager loaded.  | 
                |
| static protected array | $macros | All of the globally registered builder macros.  | 
                |
| protected array | $localMacros | All of the locally registered builder macros.  | 
                |
| protected Closure | $onDelete | A replacement for the typical delete function.  | 
                |
| protected array | $passthru | The methods that should be returned from query builder.  | 
                |
| protected array | $scopes | Applied global scopes.  | 
                |
| protected array | $removedScopes | Removed global scopes.  | 
                |
| HigherOrderBuilderProxy read-only | $orWhere | 
Methods
Execute a callback over each item while chunking.
Chunk the results of a query by comparing IDs.
Execute a callback over each item while chunking by id.
Execute the query and get the first result.
Apply the callback's query changes if the given "value" is true.
Apply the callback's query changes if the given "value" is false.
Create a new length-aware paginator instance.
Create a new simple paginator instance.
Add a relationship count / exists condition to the query.
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".
Add a polymorphic relationship count / exists condition to the query.
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 subselect queries to count the relations.
Add the "has" condition where clause to the query.
Merge the where constraints from another query to the current query.
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.
Forward a method call to the given object.
Throw a bad method call exception for the given method.
Remove all or passed registered global scopes.
Get an array of global scopes that were removed from the query.
Add a where clause on the primary key to the query.
Add a where clause on the primary key to the query.
Add a basic where clause to the query.
Add a basic where clause to the query, and return the first result.
Add an "or where" clause to the query.
Create a collection of models from plain arrays.
Create a collection of models from a raw query.
Find a model by its primary key.
Find a model by its primary key or throw an exception.
Find a model by its primary key or return fresh model instance.
Get the first record matching the attributes or instantiate it.
Get the first record matching the attributes or create it.
Create or update a record matching the attributes, and fill it with values.
Execute the query and get the first result or throw an exception.
Execute the query as a "select" statement.
Get the hydrated models without eager loading.
Eager load the relationships for the models.
Eagerly load the relationship on a set of models.
Get the relation instance for the given relation name.
Get the deeply nested relations for a given top-level relation.
Determine if the relationship is nested.
Get a lazy collection for the given query.
Add a generic "order by" clause if the query doesn't already have one.
Get an array with the values of a given column.
Paginate the given query.
Paginate the given query into a simple paginator.
Save a new model and return the instance. Allow mass-assignment.
Update a record in the database.
Increment a column's value by a given amount.
Decrement a column's value by a given amount.
Add the "updated at" column to an array of values.
Delete a record from the database.
Run the default delete function on the builder.
Apply the scopes to the Eloquent builder instance and return it.
Apply the given scope on the current builder instance.
Nest where conditions by slicing them at the given where count.
Slice where conditions at the given offset and add them to the query as a nested condition.
Create a where array with nested where conditions.
Set the relationships that should be eager loaded.
Prevent the specified relations from being eager loaded.
Create a new instance of the model being queried.
Parse a list of relations into individuals.
Create a constraint to select the given columns for the relation.
Parse the nested relationships in a relation.
Get the relationships being eagerly loaded.
Set the relationships being eagerly loaded.
Get the default key name of the table.
Checks if a macro is registered.
Get the given global macro by name.
Checks if a global macro is registered.
Dynamically access builder proxies.
Dynamically handle calls into the query instance.
Dynamically handle calls into the query instance.
Register the given mixin with the builder.
Force a clone of the underlying query builder when cloning.
Details
        
                            bool
    chunk(int $count, callable $callback)
        
    
    Chunk the results of the query.
        
                            bool
    each(callable $callback, int $count = 1000)
        
    
    Execute a callback over each item while chunking.
        
                            bool
    chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
        
    
    Chunk the results of a query by comparing IDs.
        
                            bool
    eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
        
    
    Execute a callback over each item while chunking by id.
        
                            Model|object|BuildsQueries|null
    first(array|string $columns = ['*'])
        
    
    Execute the query and get the first result.
        
                            mixed|$this
    when(mixed $value, callable $callback, callable|null $default = null)
        
    
    Apply the callback's query changes if the given "value" is true.
        
                            $this
    tap(callable $callback)
        
    
    Pass the query to a given callback.
        
                            mixed|$this
    unless(mixed $value, callable $callback, callable|null $default = null)
        
    
    Apply the callback's query changes if the given "value" is false.
        
                    protected        LengthAwarePaginator
    paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)
        
    
    Create a new length-aware paginator instance.
        
                    protected        Paginator
    simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)
        
    
    Create a new simple paginator instance.
        
                            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(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(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(string $relation, string|array $types, string $boolean = 'and', Closure $callback = null)
        
    
    Add a polymorphic relationship count / exists condition to the query.
        
                            Builder|QueriesRelationships
    orDoesntHaveMorph(string $relation, string|array $types)
        
    
    Add a polymorphic relationship count / exists condition to the query with an "or".
        
                            Builder|QueriesRelationships
    whereHasMorph(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(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(string $relation, string|array $types, Closure $callback = null)
        
    
    Add a polymorphic relationship count / exists condition to the query with where clauses.
        
                            Builder|QueriesRelationships
    orWhereDoesntHaveMorph(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
    withCount(mixed $relations)
        
    
    Add subselect queries to count the relations.
        
                    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.
        
                    protected        mixed
    forwardCallTo(mixed $object, string $method, array $parameters)
        
    
    Forward a method call to the given object.
        
                static    protected        void
    throwBadMethodCallException(string $method)
        
    
    Throw a bad method call exception for the given method.
        
                            void
    __construct(Builder $query)
        
    
    Create a new Eloquent query builder instance.
        
                            $this
    withoutGlobalScope(Scope|string $scope)
        
    
    Remove a registered global scope.
        
                            $this
    withoutGlobalScopes(array $scopes = null)
        
    
    Remove all or passed registered global scopes.
        
                            array
    removedScopes()
        
    
    Get an array of global scopes that were removed from the query.
        
                            $this
    whereKey(mixed $id)
        
    
    Add a where clause on the primary key to the query.
        
                            $this
    whereKeyNot(mixed $id)
        
    
    Add a where clause on the primary key to the query.
        
                            $this
    where(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
        
    
    Add a basic where clause to the query.
        
                            Model|Builder
    firstWhere(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
        
    
    Add a basic where clause to the query, and return the first result.
        
                            Builder|Builder
    orWhere(Closure|array|string|Expression $column, mixed $operator = null, mixed $value = null)
        
    
    Add an "or where" clause to the query.
        
                            $this
    latest(string|Expression $column = null)
        
    
    Add an "order by" clause for a timestamp to the query.
        
                            $this
    oldest(string|Expression $column = null)
        
    
    Add an "order by" clause for a timestamp to the query.
        
                            Collection
    hydrate(array $items)
        
    
    Create a collection of models from plain arrays.
        
                            Collection
    fromQuery(string $query, array $bindings = [])
        
    
    Create a collection of models from a raw query.
        
                            Model|Collection|Builder[]|Builder|null
    find(mixed $id, array $columns = ['*'])
        
    
    Find a model by its primary key.
        
                            Collection
    findMany(Arrayable|array $ids, array $columns = ['*'])
        
    
    Find multiple models by their primary keys.
        
                            Model|Collection|Builder|Builder[]
    findOrFail(mixed $id, array $columns = ['*'])
        
    
    Find a model by its primary key or throw an exception.
        
                            Model|Builder
    findOrNew(mixed $id, array $columns = ['*'])
        
    
    Find a model by its primary key or return fresh model instance.
        
                            Model|Builder
    firstOrNew(array $attributes, array $values = [])
        
    
    Get the first record matching the attributes or instantiate it.
        
                            Model|Builder
    firstOrCreate(array $attributes, array $values = [])
        
    
    Get the first record matching the attributes or create it.
        
                            Model|Builder
    updateOrCreate(array $attributes, array $values = [])
        
    
    Create or update a record matching the attributes, and fill it with values.
        
                            Model|Builder
    firstOrFail(array $columns = ['*'])
        
    
    Execute the query and get the first result or throw an exception.
        
                            Model|Builder|mixed
    firstOr(Closure|array $columns = ['*'], Closure $callback = null)
        
    
    Execute the query and get the first result or call a callback.
        
                            mixed
    value(string|Expression $column)
        
    
    Get a single column's value from the first result of a query.
        
                            Collection|Builder[]
    get(array|string $columns = ['*'])
        
    
    Execute the query as a "select" statement.
        
                            Model[]|Builder[]
    getModels(array|string $columns = ['*'])
        
    
    Get the hydrated models without eager loading.
        
                            array
    eagerLoadRelations(array $models)
        
    
    Eager load the relationships for the models.
        
                    protected        array
    eagerLoadRelation(array $models, string $name, Closure $constraints)
        
    
    Eagerly load the relationship on a set of models.
        
                            Relation
    getRelation(string $name)
        
    
    Get the relation instance for the given relation name.
        
                    protected        array
    relationsNestedUnder(string $relation)
        
    
    Get the deeply nested relations for a given top-level relation.
        
                    protected        bool
    isNestedUnder(string $relation, string $name)
        
    
    Determine if the relationship is nested.
        
                            LazyCollection
    cursor()
        
    
    Get a lazy collection for the given query.
        
                    protected        void
    enforceOrderBy()
        
    
    Add a generic "order by" clause if the query doesn't already have one.
        
                            Collection
    pluck(string|Expression $column, string|null $key = null)
        
    
    Get an array with the values of a given column.
        
                            LengthAwarePaginator
    paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
        
    
    Paginate the given query.
        
                            Paginator
    simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
        
    
    Paginate the given query into a simple paginator.
        
                            Model|$this
    create(array $attributes = [])
        
    
    Save a new model and return the instance.
        
                            Model|$this
    forceCreate(array $attributes)
        
    
    Save a new model and return the instance. Allow mass-assignment.
        
                            int
    update(array $values)
        
    
    Update a record in the database.
        
                            int
    increment(string|Expression $column, float|int $amount = 1, array $extra = [])
        
    
    Increment a column's value by a given amount.
        
                            int
    decrement(string|Expression $column, float|int $amount = 1, array $extra = [])
        
    
    Decrement a column's value by a given amount.
        
                    protected        array
    addUpdatedAtColumn(array $values)
        
    
    Add the "updated at" column to an array of values.
        
                            mixed
    delete()
        
    
    Delete a record from the database.
        
                            mixed
    forceDelete()
        
    
    Run the default delete function on the builder.
Since we do not apply scopes here, the row will actually be deleted.
        
                            void
    onDelete(Closure $callback)
        
    
    Register a replacement for the default delete function.
        
                            Builder|mixed
    scopes(array|string $scopes)
        
    
    Call the given local model scopes.
        
                            Builder
    applyScopes()
        
    
    Apply the scopes to the Eloquent builder instance and return it.
        
                    protected        mixed
    callScope(callable $scope, array $parameters = [])
        
    
    Apply the given scope on the current builder instance.
        
                    protected        void
    addNewWheresWithinGroup(Builder $query, int $originalWhereCount)
        
    
    Nest where conditions by slicing them at the given where count.
        
                    protected        void
    groupWhereSliceForScope(Builder $query, array $whereSlice)
        
    
    Slice where conditions at the given offset and add them to the query as a nested condition.
        
                    protected        array
    createNestedWhere(array $whereSlice, string $boolean = 'and')
        
    
    Create a where array with nested where conditions.
        
                            $this
    with(mixed $relations)
        
    
    Set the relationships that should be eager loaded.
        
                            $this
    without(mixed $relations)
        
    
    Prevent the specified relations from being eager loaded.
        
                            Model|Builder
    newModelInstance(array $attributes = [])
        
    
    Create a new instance of the model being queried.
        
                    protected        array
    parseWithRelations(array $relations)
        
    
    Parse a list of relations into individuals.
        
                    protected        array
    createSelectWithConstraint(string $name)
        
    
    Create a constraint to select the given columns for the relation.
        
                    protected        array
    addNestedWiths(string $name, array $results)
        
    
    Parse the nested relationships in a relation.
        
                            Builder
    getQuery()
        
    
    Get the underlying query builder instance.
        
                            $this
    setQuery(Builder $query)
        
    
    Set the underlying query builder instance.
        
                            Builder
    toBase()
        
    
    Get a base query builder instance.
        
                            array
    getEagerLoads()
        
    
    Get the relationships being eagerly loaded.
        
                            $this
    setEagerLoads(array $eagerLoad)
        
    
    Set the relationships being eagerly loaded.
        
                    protected        string
    defaultKeyName()
        
    
    Get the default key name of the table.
        
                            $this
    setModel(Model $model)
        
    
    Set a model instance for the model being queried.
        
                            string
    qualifyColumn(string|Expression $column)
        
    
    Qualify the given column name by the model's table.
        
                            Closure
    getMacro(string $name)
        
    
    Get the given macro by name.
        
                            bool
    hasMacro(string $name)
        
    
    Checks if a macro is registered.
        
                static            Closure
    getGlobalMacro(string $name)
        
    
    Get the given global macro by name.
        
                static            bool
    hasGlobalMacro(string $name)
        
    
    Checks if a global macro is registered.
        
                            mixed
    __get(string $key)
        
    
    Dynamically access builder proxies.
        
                            mixed
    __call(string $method, array $parameters)
        
    
    Dynamically handle calls into the query instance.
        
                static            mixed
    __callStatic(string $method, array $parameters)
        
    
    Dynamically handle calls into the query instance.
        
                static    protected        void
    registerMixin(string $mixin, bool $replace)
        
    
    Register the given mixin with the builder.
        
                            void
    __clone()
        
    
    Force a clone of the underlying query builder when cloning.