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
Find a model by its primary key.
Find a model by its primary key or throw an exception.
Execute the query and get the first result or throw an exception.
Execute the query as a "select" statement.
Pluck a single column from the database.
Chunk the results of the query.
Get an array with the values of a given column.
Get a paginator for the "select" statement.
Get a paginator for a grouped statement.
Get a paginator for an ungrouped statement.
Get a paginator only supporting simple next and previous links.
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.
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.
Add a basic where clause to the query.
Add an "or where" clause to the query.
Add a relationship count condition to the query.
Add a relationship count condition to the query with where clauses.
Add a relationship count condition to the query with an "or".
Add a relationship count condition to the query with where clauses and an "or".
Add the "has" condition where clause to the query.
Merge the "wheres" from a relation query to a has query.
Get the "has relation" base query instance.
Set the relationships that should be eager loaded.
Parse a list of relations into individuals.
Parse the nested relationships in a relation.
Call the given model scope on the underlying model.
Get the relationships being eagerly loaded.
Set the relationships being eagerly loaded.
Dynamically handle calls into the query instance.
Force a clone of the underlying query builder when cloning.
Details
void
__construct(Builder $query)
Create a new Eloquent query builder instance.
Model|Collection|Builder
findMany(array $id, array $columns = array('*'))
Find a model by its primary key.
Model|Builder
findOrFail(mixed $id, array $columns = array('*'))
Find a model by its primary key or throw an exception.
Model|Builder
firstOrFail(array $columns = array('*'))
Execute the query and get the first result or throw an exception.
Collection|Builder[]
get(array $columns = array('*'))
Execute the query as a "select" statement.
mixed
pluck(string $column)
Pluck a single column from the database.
void
chunk(int $count, callable $callback)
Chunk the results of the query.
array
lists(string $column, string $key = null)
Get an array with the values of a given column.
Paginator
paginate(int $perPage = null, array $columns = array('*'))
Get a paginator for the "select" statement.
protected Paginator
groupedPaginate(Factory $paginator, int $perPage, array $columns)
Get a paginator for a grouped statement.
protected Paginator
ungroupedPaginate(Factory $paginator, int $perPage, array $columns)
Get a paginator for an ungrouped statement.
Paginator
simplePaginate(int $perPage = null, array $columns = array('*'))
Get a paginator only supporting simple next and previous links.
This is more efficient on larger data-sets, etc.
int
update(array $values)
Update a record in the database.
int
increment(string $column, int $amount = 1, array $extra = array())
Increment a column's value by a given amount.
int
decrement(string $column, int $amount = 1, array $extra = array())
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 = array('*'))
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 $relation)
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 $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 Builder
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.
void
setQuery(Builder $query)
Set the underlying query builder instance.
array
getEagerLoads()
Get the relationships being eagerly loaded.
void
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.