Builder
class Builder (View source)
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. | |
protected array | $macros | All of the 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. |
Methods
void | __construct(Builder $query) Create a new Eloquent query builder instance. | |
Model|Collection|null | find(mixed $id, array $columns = ['*']) Find a model by its primary key. | |
Collection | findMany(array $ids, array $columns = ['*']) Find a model by its primary key. | |
Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Find a model by its primary key or throw an exception. | |
Model | findOrNew(mixed $id, array $columns = ['*']) Find a model by its primary key or return fresh model instance. | |
Model | firstOrNew(array $attributes) Get the first record matching the attributes or instantiate it. | |
Model | firstOrCreate(array $attributes) Get the first record matching the attributes or create it. | |
Model | updateOrCreate(array $attributes, array $values = []) Create or update a record matching the attributes, and fill it with values. | |
Model|Builder|null | first(array $columns = ['*']) Execute the query and get the first result. | |
Model|Builder | firstOrFail(array $columns = ['*']) Execute the query and get the first result or throw an exception. | |
Collection|Builder[] | get(array $columns = ['*']) Execute the query as a "select" statement. | |
mixed | value(string $column) Get a single column's value from the first result of a query. | |
mixed | pluck(string $column) deprecated Get a single column's value from the first result of a query. | |
bool | chunk(int $count, callable $callback) Chunk the results of the query. | |
Collection | lists(string $column, string|null $key = null) Get an array with the values of a given column. | |
LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Paginate the given query. | |
Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page') Paginate the given query into a simple paginator. | |
int | update(array $values) Update a record in the database. | |
int | increment(string $column, int $amount = 1, array $extra = []) Increment a column's value by a given amount. | |
int | decrement(string $column, int $amount = 1, array $extra = []) Decrement a column's value by a given amount. | |
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. | |
void | onDelete(Closure $callback) Register a replacement for the default delete function. | |
Model[] | getModels(array $columns = ['*']) Get the hydrated models without eager loading. | |
array | eagerLoadRelations(array $models) Eager load the relationships for the models. | |
array | loadRelation(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. | |
array | nestedRelations(string $relation) Get the deeply nested relations for a given top-level relation. | |
bool | isNested(string $name, string $relation) Determine if the relationship is nested. | |
$this | where(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Add a basic where clause to the query. | |
Builder|Builder | orWhere(string $column, string $operator = null, mixed $value = null) Add an "or where" clause to the query. | |
Builder|Builder | has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null) Add a relationship count condition to the query. | |
Builder|Builder | hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null) Add nested relationship count conditions to the query. | |
Builder|Builder | doesntHave(string $relation, string $boolean = 'and', Closure $callback = null) Add a relationship count condition to the query. | |
Builder|Builder | whereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1) Add a relationship count condition to the query with where clauses. | |
Builder|Builder | whereDoesntHave(string $relation, Closure $callback = null) Add a relationship count condition to the query with where clauses. | |
Builder|Builder | orHas(string $relation, string $operator = '>=', int $count = 1) Add a relationship count condition to the query with an "or". | |
Builder|Builder | orWhereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1) Add a relationship count condition to the query with where clauses and an "or". | |
Builder | addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean) Add the "has" condition where clause to the query. | |
void | mergeWheresToHas(Builder $hasQuery, Relation $relation) Merge the "wheres" from a relation query to a has query. | |
Relation | getHasRelationQuery(string $relation) Get the "has relation" base query instance. | |
$this | with(mixed $relations) Set the relationships that should be eager loaded. | |
array | parseRelations(array $relations) Parse a list of relations into individuals. | |
array | parseNested(string $name, array $results) Parse the nested relationships in a relation. | |
Builder | callScope(string $scope, array $parameters) Call the given model scope on the underlying model. | |
Builder|Builder | getQuery() Get the underlying query builder instance. | |
$this | setQuery(Builder $query) Set the underlying query builder instance. | |
array | getEagerLoads() Get the relationships being eagerly loaded. | |
$this | setEagerLoads(array $eagerLoad) Set the relationships being eagerly loaded. | |
Model | getModel() Get the model instance being queried. | |
$this | setModel(Model $model) Set a model instance for the model being queried. | |
void | macro(string $name, Closure $callback) Extend the builder with a given callback. | |
Closure | getMacro(string $name) Get the given macro by name. | |
mixed | __call(string $method, array $parameters) Dynamically handle calls into the query instance. | |
void | __clone() Force a clone of the underlying query builder when cloning. |
Details
void __construct(Builder $query)
Create a new Eloquent query builder instance.
Model|Collection|null find(mixed $id, array $columns = ['*'])
Find a model by its primary key.
Collection findMany(array $ids, array $columns = ['*'])
Find a model by its primary key.
Model|Collection findOrFail(mixed $id, array $columns = ['*'])
Find a model by its primary key or throw an exception.
Model findOrNew(mixed $id, array $columns = ['*'])
Find a model by its primary key or return fresh model instance.
Model firstOrNew(array $attributes)
Get the first record matching the attributes or instantiate it.
Model firstOrCreate(array $attributes)
Get the first record matching the attributes or create it.
Model 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.
Collection|Builder[] get(array $columns = ['*'])
Execute the query as a "select" statement.
mixed value(string $column)
Get a single column's value from the first result of a query.
mixed pluck(string $column) deprecated
deprecated
Get a single column's value from the first result of a query.
This is an alias for the "value" method.
bool chunk(int $count, callable $callback)
Chunk the results of the query.
Collection lists(string $column, string|null $key = null)
Get an array with the values of a given column.
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Paginate the given query.
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page')
Paginate the given query into a simple paginator.
int update(array $values)
Update a record in the database.
int increment(string $column, int $amount = 1, array $extra = [])
Increment a column's value by a given amount.
int decrement(string $column, 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.
void onDelete(Closure $callback)
Register a replacement for the default delete function.
Model[] getModels(array $columns = ['*'])
Get the hydrated models without eager loading.
array eagerLoadRelations(array $models)
Eager load the relationships for the models.
protected array loadRelation(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 nestedRelations(string $relation)
Get the deeply nested relations for a given top-level relation.
protected bool isNested(string $name, string $relation)
Determine if the relationship is nested.
$this where(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')
Add a basic where clause to the query.
Builder|Builder orWhere(string $column, string $operator = null, mixed $value = null)
Add an "or where" clause to the query.
Builder|Builder has(string $relation, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure $callback = null)
Add a relationship count condition to the query.
protected Builder|Builder hasNested(string $relations, string $operator = '>=', int $count = 1, string $boolean = 'and', Closure|null $callback = null)
Add nested relationship count conditions to the query.
Builder|Builder doesntHave(string $relation, string $boolean = 'and', Closure $callback = null)
Add a relationship count condition to the query.
Builder|Builder whereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1)
Add a relationship count condition to the query with where clauses.
Builder|Builder whereDoesntHave(string $relation, Closure $callback = null)
Add a relationship count condition to the query with where clauses.
Builder|Builder orHas(string $relation, string $operator = '>=', int $count = 1)
Add a relationship count condition to the query with an "or".
Builder|Builder orWhereHas(string $relation, Closure $callback, string $operator = '>=', int $count = 1)
Add a relationship count condition to the query with where clauses and an "or".
protected Builder addHasWhere(Builder $hasQuery, Relation $relation, string $operator, int $count, string $boolean)
Add the "has" condition where clause to the query.
protected void mergeWheresToHas(Builder $hasQuery, Relation $relation)
Merge the "wheres" from a relation query to a has query.
protected Relation getHasRelationQuery(string $relation)
Get the "has relation" base query instance.
$this with(mixed $relations)
Set the relationships that should be eager loaded.
protected array parseRelations(array $relations)
Parse a list of relations into individuals.
protected array parseNested(string $name, array $results)
Parse the nested relationships in a relation.
protected Builder callScope(string $scope, array $parameters)
Call the given model scope on the underlying model.
$this setQuery(Builder $query)
Set the underlying query builder instance.
array getEagerLoads()
Get the relationships being eagerly loaded.
$this setEagerLoads(array $eagerLoad)
Set the relationships being eagerly loaded.
Model getModel()
Get the model instance being queried.
$this setModel(Model $model)
Set a model instance for the model being queried.
void macro(string $name, Closure $callback)
Extend the builder with a given callback.
Closure getMacro(string $name)
Get the given macro by name.
mixed __call(string $method, array $parameters)
Dynamically handle calls into the query instance.
void __clone()
Force a clone of the underlying query builder when cloning.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.1/Illuminate/Database/Eloquent/Builder.html