Builder

class Builder (View source)

Traits

BuildsQueries
ForwardsCalls
Macroable

Properties

static protected array $macros The registered string macros. from Macroable
ConnectionInterface $connection The database connection instance.
Grammar $grammar The database query grammar instance.
Processor $processor The database query post processor instance.
array $bindings The current query value bindings.
array $aggregate An aggregate function and column to be run.
array $columns The columns that should be returned.
bool|array $distinct Indicates if the query returns distinct results.
string $from The table which the query is targeting.
array $joins The table joins for the query.
array $wheres The where constraints for the query.
array $groups The groupings for the query.
array $havings The having constraints for the query.
array $orders The orderings for the query.
int $limit The maximum number of records to return.
int $offset The number of records to skip.
array $unions The query union statements.
int $unionLimit The maximum number of union records to return.
int $unionOffset The number of union records to skip.
array $unionOrders The orderings for the union query.
string|bool $lock Indicates whether row locking is being used.
array $operators All of the available clause operators.
bool $useWritePdo Whether use write pdo for select.

Methods

bool chunk(int $count, callable $callback)

Chunk the results of the query.

from BuildsQueries
bool each(callable $callback, int $count = 1000)

Execute a callback over each item while chunking.

from BuildsQueries
bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)

Chunk the results of a query by comparing IDs.

from BuildsQueries
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.

from BuildsQueries
Model|object|BuildsQueries|null first(array|string $columns = ['*'])

Execute the query and get the first result.

from BuildsQueries
mixed|$this when(mixed $value, callable $callback, callable|null $default = null)

Apply the callback's query changes if the given "value" is true.

from BuildsQueries
$this tap(callable $callback)

Pass the query to a given callback.

from BuildsQueries
mixed|$this unless(mixed $value, callable $callback, callable|null $default = null)

Apply the callback's query changes if the given "value" is false.

from BuildsQueries
LengthAwarePaginator paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)

Create a new length-aware paginator instance.

from BuildsQueries
Paginator simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)

Create a new simple paginator instance.

from BuildsQueries
mixed forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

from ForwardsCalls
static void throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

from ForwardsCalls
static void macro(string $name, object|callable $macro)

Register a custom macro.

from Macroable
static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

from Macroable
static bool hasMacro(string $name)

Checks if macro is registered.

from Macroable
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

from Macroable
mixed __call(string $method, array $parameters)

Handle dynamic method calls into the method.

void __construct(ConnectionInterface $connection, Grammar $grammar = null, Processor $processor = null)

Create a new query builder instance.

$this select(array|mixed $columns = ['*'])

Set the columns to be selected.

$this selectSub(Closure|$this|string $query, string $as)

Add a subselect expression to the query.

$this selectRaw(string $expression, array $bindings = [])

Add a new "raw" select expression to the query.

$this fromSub(Closure|Builder|string $query, string $as)

Makes "from" fetch from a subquery.

$this fromRaw(string $expression, mixed $bindings = [])

Add a raw from clause to the query.

array createSub(Closure|Builder|string $query)

Creates a subquery and parse it.

array parseSub(mixed $query)

Parse the subquery into SQL and bindings.

$this addSelect(array|mixed $column)

Add a new select column to the query.

$this distinct()

Force the query to only return distinct results.

$this from(Closure|Builder|string $table, string|null $as = null)

Set the table which the query is targeting.

$this join(string $table, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)

Add a join clause to the query.

$this joinWhere(string $table, Closure|string $first, string $operator, string $second, string $type = 'inner')

Add a "join where" clause to the query.

$this joinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)

Add a subquery join clause to the query.

$this leftJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a left join to the query.

$this leftJoinWhere(string $table, Closure|string $first, string $operator, string $second)

Add a "join where" clause to the query.

$this leftJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a subquery left join to the query.

$this rightJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a right join to the query.

$this rightJoinWhere(string $table, Closure|string $first, string $operator, string $second)

Add a "right join where" clause to the query.

$this rightJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a subquery right join to the query.

$this crossJoin(string $table, Closure|string|null $first = null, string|null $operator = null, string|null $second = null)

Add a "cross join" clause to the query.

JoinClause newJoinClause(Builder $parentQuery, string $type, string $table)

Get a new join clause.

void mergeWheres(array $wheres, array $bindings)

Merge an array of where clauses and bindings.

$this where(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a basic where clause to the query.

$this addArrayOfWheres(array $column, string $boolean, string $method = 'where')

Add an array of where clauses to the query.

array prepareValueAndOperator(string $value, string $operator, bool $useDefault = false)

Prepare the value and operator for a where clause.

bool invalidOperatorAndValue(string $operator, mixed $value)

Determine if the given operator and value combination is legal.

bool invalidOperator(string $operator)

Determine if the given operator is supported.

$this orWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query.

$this whereColumn(string|array $first, string|null $operator = null, string|null $second = null, string|null $boolean = 'and')

Add a "where" clause comparing two columns to the query.

$this orWhereColumn(string|array $first, string|null $operator = null, string|null $second = null)

Add an "or where" clause comparing two columns to the query.

$this whereRaw(string $sql, mixed $bindings = [], string $boolean = 'and')

Add a raw where clause to the query.

$this orWhereRaw(string $sql, mixed $bindings = [])

Add a raw or where clause to the query.

$this whereIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)

Add a "where in" clause to the query.

$this orWhereIn(string $column, mixed $values)

Add an "or where in" clause to the query.

$this whereNotIn(string $column, mixed $values, string $boolean = 'and')

Add a "where not in" clause to the query.

$this orWhereNotIn(string $column, mixed $values)

Add an "or where not in" clause to the query.

$this whereIntegerInRaw(string $column, Arrayable|array $values, string $boolean = 'and', bool $not = false)

Add a "where in raw" clause for integer values to the query.

$this orWhereIntegerInRaw(string $column, Arrayable|array $values)

Add an "or where in raw" clause for integer values to the query.

$this whereIntegerNotInRaw(string $column, Arrayable|array $values, string $boolean = 'and')

Add a "where not in raw" clause for integer values to the query.

$this orWhereIntegerNotInRaw(string $column, Arrayable|array $values)

Add an "or where not in raw" clause for integer values to the query.

$this whereNull(string|array $columns, string $boolean = 'and', bool $not = false)

Add a "where null" clause to the query.

$this orWhereNull(string $column)

Add an "or where null" clause to the query.

$this whereNotNull(string|array $columns, string $boolean = 'and')

Add a "where not null" clause to the query.

$this whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a where between statement to the query.

$this whereBetweenColumns(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a where between statement using columns to the query.

$this orWhereBetween(string $column, array $values)

Add an or where between statement to the query.

$this orWhereBetweenColumns(string $column, array $values)

Add an or where between statement using columns to the query.

$this whereNotBetween(string $column, array $values, string $boolean = 'and')

Add a where not between statement to the query.

$this whereNotBetweenColumns(string $column, array $values, string $boolean = 'and')

Add a where not between statement using columns to the query.

$this orWhereNotBetween(string $column, array $values)

Add an or where not between statement to the query.

$this orWhereNotBetweenColumns(string $column, array $values)

Add an or where not between statement using columns to the query.

$this orWhereNotNull(string $column)

Add an "or where not null" clause to the query.

$this whereDate(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where date" statement to the query.

$this orWhereDate(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where date" statement to the query.

$this whereTime(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where time" statement to the query.

$this orWhereTime(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where time" statement to the query.

$this whereDay(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where day" statement to the query.

$this orWhereDay(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where day" statement to the query.

$this whereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where month" statement to the query.

$this orWhereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where month" statement to the query.

$this whereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null, string $boolean = 'and')

Add a "where year" statement to the query.

$this orWhereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null)

Add an "or where year" statement to the query.

$this addDateBasedWhere(string $type, string $column, string $operator, mixed $value, string $boolean = 'and')

Add a date based (year, month, day, time) statement to the query.

$this whereNested(Closure $callback, string $boolean = 'and')

Add a nested where statement to the query.

Builder forNestedWhere()

Create a new query instance for nested where condition.

$this addNestedWhereQuery(Builder $query, string $boolean = 'and')

Add another query builder as a nested where to the query builder.

$this whereSub(string $column, string $operator, Closure $callback, string $boolean)

Add a full sub-select to the query.

$this whereExists(Closure $callback, string $boolean = 'and', bool $not = false)

Add an exists clause to the query.

$this orWhereExists(Closure $callback, bool $not = false)

Add an or exists clause to the query.

$this whereNotExists(Closure $callback, string $boolean = 'and')

Add a where not exists clause to the query.

$this orWhereNotExists(Closure $callback)

Add a where not exists clause to the query.

$this addWhereExistsQuery(Builder $query, string $boolean = 'and', bool $not = false)

Add an exists clause to the query.

$this whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')

Adds a where condition using row values.

$this orWhereRowValues(array $columns, string $operator, array $values)

Adds an or where condition using row values.

$this whereJsonContains(string $column, mixed $value, string $boolean = 'and', bool $not = false)

Add a "where JSON contains" clause to the query.

$this orWhereJsonContains(string $column, mixed $value)

Add an "or where JSON contains" clause to the query.

$this whereJsonDoesntContain(string $column, mixed $value, string $boolean = 'and')

Add a "where JSON not contains" clause to the query.

$this orWhereJsonDoesntContain(string $column, mixed $value)

Add an "or where JSON not contains" clause to the query.

$this whereJsonLength(string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where JSON length" clause to the query.

$this orWhereJsonLength(string $column, mixed $operator, mixed $value = null)

Add an "or where JSON length" clause to the query.

$this dynamicWhere(string $method, array $parameters)

Handles dynamic "where" clauses to the query.

void addDynamic(string $segment, string $connector, array $parameters, int $index)

Add a single dynamic where clause statement to the query.

$this groupBy(array|string ...$groups)

Add a "group by" clause to the query.

$this groupByRaw(string $sql, array $bindings = [])

Add a raw groupBy clause to the query.

$this having(string $column, string|null $operator = null, string|null $value = null, string $boolean = 'and')

Add a "having" clause to the query.

$this orHaving(string $column, string|null $operator = null, string|null $value = null)

Add an "or having" clause to the query.

$this havingBetween(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a "having between " clause to the query.

$this havingRaw(string $sql, array $bindings = [], string $boolean = 'and')

Add a raw having clause to the query.

$this orHavingRaw(string $sql, array $bindings = [])

Add a raw or having clause to the query.

$this orderBy(Closure|Builder|Expression|string $column, string $direction = 'asc')

Add an "order by" clause to the query.

$this orderByDesc(string $column)

Add a descending "order by" clause to the query.

$this latest(string $column = 'created_at')

Add an "order by" clause for a timestamp to the query.

$this oldest(string $column = 'created_at')

Add an "order by" clause for a timestamp to the query.

$this inRandomOrder(string $seed = '')

Put the query's results in random order.

$this orderByRaw(string $sql, array $bindings = [])

Add a raw "order by" clause to the query.

$this skip(int $value)

Alias to set the "offset" value of the query.

$this offset(int $value)

Set the "offset" value of the query.

$this take(int $value)

Alias to set the "limit" value of the query.

$this limit(int $value)

Set the "limit" value of the query.

$this forPage(int $page, int $perPage = 15)

Set the limit and offset for a given page.

$this forPageBeforeId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')

Constrain the query to the previous "page" of results before a given ID.

$this forPageAfterId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')

Constrain the query to the next "page" of results after a given ID.

$this reorder(string|null $column = null, string $direction = 'asc')

Remove all existing orders and optionally add a new order.

array removeExistingOrdersFor(string $column)

Get an array with all orders with a given column removed.

$this union(Builder|Closure $query, bool $all = false)

Add a union statement to the query.

$this unionAll(Builder|Closure $query)

Add a union all statement to the query.

$this lock(string|bool $value = true)

Lock the selected rows in the table.

Builder lockForUpdate()

Lock the selected rows in the table for updating.

Builder sharedLock()

Share lock the selected rows in the table.

string toSql()

Get the SQL representation of the query.

mixed|Builder find(int|string $id, array $columns = ['*'])

Execute a query for a single record by ID.

mixed value(string $column)

Get a single column's value from the first result of a query.

Collection get(array|string $columns = ['*'])

Execute the query as a "select" statement.

array runSelect()

Run the query as a "select" statement against the connection.

LengthAwarePaginator paginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Paginate the given query into a simple paginator.

Paginator simplePaginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Get a paginator only supporting simple next and previous links.

int getCountForPagination(array $columns = ['*'])

Get the count of the total records for the paginator.

array runPaginationCountQuery(array $columns = ['*'])

Run a pagination count query.

Builder cloneForPaginationCount()

Clone the existing query instance for usage in a pagination subquery.

array withoutSelectAliases(array $columns)

Remove the column aliases since they will break count queries.

LazyCollection cursor()

Get a lazy collection for the given query.

void enforceOrderBy()

Throw an exception if the query doesn't have an orderBy clause.

Collection pluck(string $column, string|null $key = null)

Get an array with the values of a given column.

string|null stripTableForPluck(string $column)

Strip off the table name or alias from a column identifier.

Collection pluckFromObjectColumn(array $queryResult, string $column, string $key)

Retrieve column values from rows represented as objects.

Collection pluckFromArrayColumn(array $queryResult, string $column, string $key)

Retrieve column values from rows represented as arrays.

string implode(string $column, string $glue = '')

Concatenate values of a given column as a string.

bool exists()

Determine if any rows exist for the current query.

bool doesntExist()

Determine if no rows exist for the current query.

mixed existsOr(Closure $callback)

Execute the given callback if no rows exist for the current query.

mixed doesntExistOr(Closure $callback)

Execute the given callback if rows exist for the current query.

int count(string $columns = '*')

Retrieve the "count" result of the query.

mixed min(string $column)

Retrieve the minimum value of a given column.

mixed max(string $column)

Retrieve the maximum value of a given column.

mixed sum(string $column)

Retrieve the sum of the values of a given column.

mixed avg(string $column)

Retrieve the average of the values of a given column.

mixed average(string $column)

Alias for the "avg" method.

mixed aggregate(string $function, array $columns = ['*'])

Execute an aggregate function on the database.

float|int numericAggregate(string $function, array $columns = ['*'])

Execute a numeric aggregate function on the database.

$this setAggregate(string $function, array $columns)

Set the aggregate property without running the query.

mixed onceWithColumns(array $columns, callable $callback)

Execute the given callback while selecting the given columns.

bool insert(array $values)

Insert a new record into the database.

int insertOrIgnore(array $values)

Insert a new record into the database while ignoring errors.

int insertGetId(array $values, string|null $sequence = null)

Insert a new record and get the value of the primary key.

int insertUsing(array $columns, Closure|Builder|string $query)

Insert new records into the table using a subquery.

int update(array $values)

Update a record in the database.

bool updateOrInsert(array $attributes, array $values = [])

Insert or update a record matching the attributes, and fill it with values.

int increment(string $column, float|int $amount = 1, array $extra = [])

Increment a column's value by a given amount.

int decrement(string $column, float|int $amount = 1, array $extra = [])

Decrement a column's value by a given amount.

int delete(mixed $id = null)

Delete a record from the database.

void truncate()

Run a truncate statement on the table.

Builder newQuery()

Get a new instance of the query builder.

Builder forSubQuery()

Create a new query instance for a sub-query.

Expression raw(mixed $value)

Create a raw database expression.

array getBindings()

Get the current query value bindings in a flattened array.

array getRawBindings()

Get the raw array of bindings.

$this setBindings(array $bindings, string $type = 'where')

Set the bindings on the query builder.

$this addBinding(mixed $value, string $type = 'where')

Add a binding to the query.

$this mergeBindings(Builder $query)

Merge an array of bindings into our bindings.

array cleanBindings(array $bindings)

Remove all of the expressions from a list of bindings.

string defaultKeyName()

Get the default key name of the table.

ConnectionInterface getConnection()

Get the database connection instance.

Processor getProcessor()

Get the database query processor instance.

Grammar getGrammar()

Get the query grammar instance.

$this useWritePdo()

Use the write pdo for query.

bool isQueryable(mixed $value)

Determine if the value is a query builder instance or a Closure.

Builder cloneWithout(array $properties)

Clone the query without the given properties.

Builder cloneWithoutBindings(array $except)

Clone the query without the given bindings.

$this dump()

Dump the current SQL and bindings.

void dd()

Die and dump the current SQL and bindings.

Details

bool chunk(int $count, callable $callback)

Chunk the results of the query.

Parameters

int $count
callable $callback

Return Value

bool

bool each(callable $callback, int $count = 1000)

Execute a callback over each item while chunking.

Parameters

callable $callback
int $count

Return Value

bool

bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)

Chunk the results of a query by comparing IDs.

Parameters

int $count
callable $callback
string|null $column
string|null $alias

Return Value

bool

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.

Parameters

callable $callback
int $count
string|null $column
string|null $alias

Return Value

bool

Model|object|BuildsQueries|null first(array|string $columns = ['*'])

Execute the query and get the first result.

Parameters

array|string $columns

Return Value

Model|object|BuildsQueries|null

mixed|$this when(mixed $value, callable $callback, callable|null $default = null)

Apply the callback's query changes if the given "value" is true.

Parameters

mixed $value
callable $callback
callable|null $default

Return Value

mixed|$this

$this tap(callable $callback)

Pass the query to a given callback.

Parameters

callable $callback

Return Value

$this

mixed|$this unless(mixed $value, callable $callback, callable|null $default = null)

Apply the callback's query changes if the given "value" is false.

Parameters

mixed $value
callable $callback
callable|null $default

Return Value

mixed|$this

protected LengthAwarePaginator paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)

Create a new length-aware paginator instance.

Parameters

Collection $items
int $total
int $perPage
int $currentPage
array $options

Return Value

LengthAwarePaginator

protected Paginator simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)

Create a new simple paginator instance.

Parameters

Collection $items
int $perPage
int $currentPage
array $options

Return Value

Paginator

protected mixed forwardCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

Parameters

string $method

Return Value

void

Exceptions

BadMethodCallException

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Handle dynamic method calls into the method.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void __construct(ConnectionInterface $connection, Grammar $grammar = null, Processor $processor = null)

Create a new query builder instance.

Parameters

ConnectionInterface $connection
Grammar $grammar
Processor $processor

Return Value

void

$this select(array|mixed $columns = ['*'])

Set the columns to be selected.

Parameters

array|mixed $columns

Return Value

$this

$this selectSub(Closure|$this|string $query, string $as)

Add a subselect expression to the query.

Parameters

Closure|$this|string $query
string $as

Return Value

$this

Exceptions

InvalidArgumentException

$this selectRaw(string $expression, array $bindings = [])

Add a new "raw" select expression to the query.

Parameters

string $expression
array $bindings

Return Value

$this

$this fromSub(Closure|Builder|string $query, string $as)

Makes "from" fetch from a subquery.

Parameters

Closure|Builder|string $query
string $as

Return Value

$this

Exceptions

InvalidArgumentException

$this fromRaw(string $expression, mixed $bindings = [])

Add a raw from clause to the query.

Parameters

string $expression
mixed $bindings

Return Value

$this

protected array createSub(Closure|Builder|string $query)

Creates a subquery and parse it.

Parameters

Closure|Builder|string $query

Return Value

array

protected array parseSub(mixed $query)

Parse the subquery into SQL and bindings.

Parameters

mixed $query

Return Value

array

Exceptions

InvalidArgumentException

$this addSelect(array|mixed $column)

Add a new select column to the query.

Parameters

array|mixed $column

Return Value

$this

$this distinct()

Force the query to only return distinct results.

Return Value

$this

$this from(Closure|Builder|string $table, string|null $as = null)

Set the table which the query is targeting.

Parameters

Closure|Builder|string $table
string|null $as

Return Value

$this

$this join(string $table, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)

Add a join clause to the query.

Parameters

string $table
Closure|string $first
string|null $operator
string|null $second
string $type
bool $where

Return Value

$this

$this joinWhere(string $table, Closure|string $first, string $operator, string $second, string $type = 'inner')

Add a "join where" clause to the query.

Parameters

string $table
Closure|string $first
string $operator
string $second
string $type

Return Value

$this

$this joinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null, string $type = 'inner', bool $where = false)

Add a subquery join clause to the query.

Parameters

Closure|Builder|string $query
string $as
Closure|string $first
string|null $operator
string|null $second
string $type
bool $where

Return Value

$this

Exceptions

InvalidArgumentException

$this leftJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a left join to the query.

Parameters

string $table
Closure|string $first
string|null $operator
string|null $second

Return Value

$this

$this leftJoinWhere(string $table, Closure|string $first, string $operator, string $second)

Add a "join where" clause to the query.

Parameters

string $table
Closure|string $first
string $operator
string $second

Return Value

$this

$this leftJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a subquery left join to the query.

Parameters

Closure|Builder|string $query
string $as
Closure|string $first
string|null $operator
string|null $second

Return Value

$this

$this rightJoin(string $table, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a right join to the query.

Parameters

string $table
Closure|string $first
string|null $operator
string|null $second

Return Value

$this

$this rightJoinWhere(string $table, Closure|string $first, string $operator, string $second)

Add a "right join where" clause to the query.

Parameters

string $table
Closure|string $first
string $operator
string $second

Return Value

$this

$this rightJoinSub(Closure|Builder|string $query, string $as, Closure|string $first, string|null $operator = null, string|null $second = null)

Add a subquery right join to the query.

Parameters

Closure|Builder|string $query
string $as
Closure|string $first
string|null $operator
string|null $second

Return Value

$this

$this crossJoin(string $table, Closure|string|null $first = null, string|null $operator = null, string|null $second = null)

Add a "cross join" clause to the query.

Parameters

string $table
Closure|string|null $first
string|null $operator
string|null $second

Return Value

$this

protected JoinClause newJoinClause(Builder $parentQuery, string $type, string $table)

Get a new join clause.

Parameters

Builder $parentQuery
string $type
string $table

Return Value

JoinClause

void mergeWheres(array $wheres, array $bindings)

Merge an array of where clauses and bindings.

Parameters

array $wheres
array $bindings

Return Value

void

$this where(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a basic where clause to the query.

Parameters

Closure|string|array $column
mixed $operator
mixed $value
string $boolean

Return Value

$this

protected $this addArrayOfWheres(array $column, string $boolean, string $method = 'where')

Add an array of where clauses to the query.

Parameters

array $column
string $boolean
string $method

Return Value

$this

array prepareValueAndOperator(string $value, string $operator, bool $useDefault = false)

Prepare the value and operator for a where clause.

Parameters

string $value
string $operator
bool $useDefault

Return Value

array

Exceptions

InvalidArgumentException

protected bool invalidOperatorAndValue(string $operator, mixed $value)

Determine if the given operator and value combination is legal.

Prevents using Null values with invalid operators.

Parameters

string $operator
mixed $value

Return Value

bool

protected bool invalidOperator(string $operator)

Determine if the given operator is supported.

Parameters

string $operator

Return Value

bool

$this orWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query.

Parameters

Closure|string|array $column
mixed $operator
mixed $value

Return Value

$this

$this whereColumn(string|array $first, string|null $operator = null, string|null $second = null, string|null $boolean = 'and')

Add a "where" clause comparing two columns to the query.

Parameters

string|array $first
string|null $operator
string|null $second
string|null $boolean

Return Value

$this

$this orWhereColumn(string|array $first, string|null $operator = null, string|null $second = null)

Add an "or where" clause comparing two columns to the query.

Parameters

string|array $first
string|null $operator
string|null $second

Return Value

$this

$this whereRaw(string $sql, mixed $bindings = [], string $boolean = 'and')

Add a raw where clause to the query.

Parameters

string $sql
mixed $bindings
string $boolean

Return Value

$this

$this orWhereRaw(string $sql, mixed $bindings = [])

Add a raw or where clause to the query.

Parameters

string $sql
mixed $bindings

Return Value

$this

$this whereIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)

Add a "where in" clause to the query.

Parameters

string $column
mixed $values
string $boolean
bool $not

Return Value

$this

$this orWhereIn(string $column, mixed $values)

Add an "or where in" clause to the query.

Parameters

string $column
mixed $values

Return Value

$this

$this whereNotIn(string $column, mixed $values, string $boolean = 'and')

Add a "where not in" clause to the query.

Parameters

string $column
mixed $values
string $boolean

Return Value

$this

$this orWhereNotIn(string $column, mixed $values)

Add an "or where not in" clause to the query.

Parameters

string $column
mixed $values

Return Value

$this

$this whereIntegerInRaw(string $column, Arrayable|array $values, string $boolean = 'and', bool $not = false)

Add a "where in raw" clause for integer values to the query.

Parameters

string $column
Arrayable|array $values
string $boolean
bool $not

Return Value

$this

$this orWhereIntegerInRaw(string $column, Arrayable|array $values)

Add an "or where in raw" clause for integer values to the query.

Parameters

string $column
Arrayable|array $values

Return Value

$this

$this whereIntegerNotInRaw(string $column, Arrayable|array $values, string $boolean = 'and')

Add a "where not in raw" clause for integer values to the query.

Parameters

string $column
Arrayable|array $values
string $boolean

Return Value

$this

$this orWhereIntegerNotInRaw(string $column, Arrayable|array $values)

Add an "or where not in raw" clause for integer values to the query.

Parameters

string $column
Arrayable|array $values

Return Value

$this

$this whereNull(string|array $columns, string $boolean = 'and', bool $not = false)

Add a "where null" clause to the query.

Parameters

string|array $columns
string $boolean
bool $not

Return Value

$this

$this orWhereNull(string $column)

Add an "or where null" clause to the query.

Parameters

string $column

Return Value

$this

$this whereNotNull(string|array $columns, string $boolean = 'and')

Add a "where not null" clause to the query.

Parameters

string|array $columns
string $boolean

Return Value

$this

$this whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a where between statement to the query.

Parameters

string $column
array $values
string $boolean
bool $not

Return Value

$this

$this whereBetweenColumns(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a where between statement using columns to the query.

Parameters

string $column
array $values
string $boolean
bool $not

Return Value

$this

$this orWhereBetween(string $column, array $values)

Add an or where between statement to the query.

Parameters

string $column
array $values

Return Value

$this

$this orWhereBetweenColumns(string $column, array $values)

Add an or where between statement using columns to the query.

Parameters

string $column
array $values

Return Value

$this

$this whereNotBetween(string $column, array $values, string $boolean = 'and')

Add a where not between statement to the query.

Parameters

string $column
array $values
string $boolean

Return Value

$this

$this whereNotBetweenColumns(string $column, array $values, string $boolean = 'and')

Add a where not between statement using columns to the query.

Parameters

string $column
array $values
string $boolean

Return Value

$this

$this orWhereNotBetween(string $column, array $values)

Add an or where not between statement to the query.

Parameters

string $column
array $values

Return Value

$this

$this orWhereNotBetweenColumns(string $column, array $values)

Add an or where not between statement using columns to the query.

Parameters

string $column
array $values

Return Value

$this

$this orWhereNotNull(string $column)

Add an "or where not null" clause to the query.

Parameters

string $column

Return Value

$this

$this whereDate(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where date" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value
string $boolean

Return Value

$this

$this orWhereDate(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where date" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value

Return Value

$this

$this whereTime(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where time" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value
string $boolean

Return Value

$this

$this orWhereTime(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where time" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value

Return Value

$this

$this whereDay(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where day" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value
string $boolean

Return Value

$this

$this orWhereDay(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where day" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value

Return Value

$this

$this whereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null, string $boolean = 'and')

Add a "where month" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value
string $boolean

Return Value

$this

$this orWhereMonth(string $column, string $operator, DateTimeInterface|string|null $value = null)

Add an "or where month" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|null $value

Return Value

$this

$this whereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null, string $boolean = 'and')

Add a "where year" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|int|null $value
string $boolean

Return Value

$this

$this orWhereYear(string $column, string $operator, DateTimeInterface|string|int|null $value = null)

Add an "or where year" statement to the query.

Parameters

string $column
string $operator
DateTimeInterface|string|int|null $value

Return Value

$this

protected $this addDateBasedWhere(string $type, string $column, string $operator, mixed $value, string $boolean = 'and')

Add a date based (year, month, day, time) statement to the query.

Parameters

string $type
string $column
string $operator
mixed $value
string $boolean

Return Value

$this

$this whereNested(Closure $callback, string $boolean = 'and')

Add a nested where statement to the query.

Parameters

Closure $callback
string $boolean

Return Value

$this

Builder forNestedWhere()

Create a new query instance for nested where condition.

Return Value

Builder

$this addNestedWhereQuery(Builder $query, string $boolean = 'and')

Add another query builder as a nested where to the query builder.

Parameters

Builder $query
string $boolean

Return Value

$this

protected $this whereSub(string $column, string $operator, Closure $callback, string $boolean)

Add a full sub-select to the query.

Parameters

string $column
string $operator
Closure $callback
string $boolean

Return Value

$this

$this whereExists(Closure $callback, string $boolean = 'and', bool $not = false)

Add an exists clause to the query.

Parameters

Closure $callback
string $boolean
bool $not

Return Value

$this

$this orWhereExists(Closure $callback, bool $not = false)

Add an or exists clause to the query.

Parameters

Closure $callback
bool $not

Return Value

$this

$this whereNotExists(Closure $callback, string $boolean = 'and')

Add a where not exists clause to the query.

Parameters

Closure $callback
string $boolean

Return Value

$this

$this orWhereNotExists(Closure $callback)

Add a where not exists clause to the query.

Parameters

Closure $callback

Return Value

$this

$this addWhereExistsQuery(Builder $query, string $boolean = 'and', bool $not = false)

Add an exists clause to the query.

Parameters

Builder $query
string $boolean
bool $not

Return Value

$this

$this whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')

Adds a where condition using row values.

Parameters

array $columns
string $operator
array $values
string $boolean

Return Value

$this

Exceptions

InvalidArgumentException

$this orWhereRowValues(array $columns, string $operator, array $values)

Adds an or where condition using row values.

Parameters

array $columns
string $operator
array $values

Return Value

$this

$this whereJsonContains(string $column, mixed $value, string $boolean = 'and', bool $not = false)

Add a "where JSON contains" clause to the query.

Parameters

string $column
mixed $value
string $boolean
bool $not

Return Value

$this

$this orWhereJsonContains(string $column, mixed $value)

Add an "or where JSON contains" clause to the query.

Parameters

string $column
mixed $value

Return Value

$this

$this whereJsonDoesntContain(string $column, mixed $value, string $boolean = 'and')

Add a "where JSON not contains" clause to the query.

Parameters

string $column
mixed $value
string $boolean

Return Value

$this

$this orWhereJsonDoesntContain(string $column, mixed $value)

Add an "or where JSON not contains" clause to the query.

Parameters

string $column
mixed $value

Return Value

$this

$this whereJsonLength(string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where JSON length" clause to the query.

Parameters

string $column
mixed $operator
mixed $value
string $boolean

Return Value

$this

$this orWhereJsonLength(string $column, mixed $operator, mixed $value = null)

Add an "or where JSON length" clause to the query.

Parameters

string $column
mixed $operator
mixed $value

Return Value

$this

$this dynamicWhere(string $method, array $parameters)

Handles dynamic "where" clauses to the query.

Parameters

string $method
array $parameters

Return Value

$this

protected void addDynamic(string $segment, string $connector, array $parameters, int $index)

Add a single dynamic where clause statement to the query.

Parameters

string $segment
string $connector
array $parameters
int $index

Return Value

void

$this groupBy(array|string ...$groups)

Add a "group by" clause to the query.

Parameters

array|string ...$groups

Return Value

$this

$this groupByRaw(string $sql, array $bindings = [])

Add a raw groupBy clause to the query.

Parameters

string $sql
array $bindings

Return Value

$this

$this having(string $column, string|null $operator = null, string|null $value = null, string $boolean = 'and')

Add a "having" clause to the query.

Parameters

string $column
string|null $operator
string|null $value
string $boolean

Return Value

$this

$this orHaving(string $column, string|null $operator = null, string|null $value = null)

Add an "or having" clause to the query.

Parameters

string $column
string|null $operator
string|null $value

Return Value

$this

$this havingBetween(string $column, array $values, string $boolean = 'and', bool $not = false)

Add a "having between " clause to the query.

Parameters

string $column
array $values
string $boolean
bool $not

Return Value

$this

$this havingRaw(string $sql, array $bindings = [], string $boolean = 'and')

Add a raw having clause to the query.

Parameters

string $sql
array $bindings
string $boolean

Return Value

$this

$this orHavingRaw(string $sql, array $bindings = [])

Add a raw or having clause to the query.

Parameters

string $sql
array $bindings

Return Value

$this

$this orderBy(Closure|Builder|Expression|string $column, string $direction = 'asc')

Add an "order by" clause to the query.

Parameters

Closure|Builder|Expression|string $column
string $direction

Return Value

$this

Exceptions

InvalidArgumentException

$this orderByDesc(string $column)

Add a descending "order by" clause to the query.

Parameters

string $column

Return Value

$this

$this latest(string $column = 'created_at')

Add an "order by" clause for a timestamp to the query.

Parameters

string $column

Return Value

$this

$this oldest(string $column = 'created_at')

Add an "order by" clause for a timestamp to the query.

Parameters

string $column

Return Value

$this

$this inRandomOrder(string $seed = '')

Put the query's results in random order.

Parameters

string $seed

Return Value

$this

$this orderByRaw(string $sql, array $bindings = [])

Add a raw "order by" clause to the query.

Parameters

string $sql
array $bindings

Return Value

$this

$this skip(int $value)

Alias to set the "offset" value of the query.

Parameters

int $value

Return Value

$this

$this offset(int $value)

Set the "offset" value of the query.

Parameters

int $value

Return Value

$this

$this take(int $value)

Alias to set the "limit" value of the query.

Parameters

int $value

Return Value

$this

$this limit(int $value)

Set the "limit" value of the query.

Parameters

int $value

Return Value

$this

$this forPage(int $page, int $perPage = 15)

Set the limit and offset for a given page.

Parameters

int $page
int $perPage

Return Value

$this

$this forPageBeforeId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')

Constrain the query to the previous "page" of results before a given ID.

Parameters

int $perPage
int|null $lastId
string $column

Return Value

$this

$this forPageAfterId(int $perPage = 15, int|null $lastId = 0, string $column = 'id')

Constrain the query to the next "page" of results after a given ID.

Parameters

int $perPage
int|null $lastId
string $column

Return Value

$this

$this reorder(string|null $column = null, string $direction = 'asc')

Remove all existing orders and optionally add a new order.

Parameters

string|null $column
string $direction

Return Value

$this

protected array removeExistingOrdersFor(string $column)

Get an array with all orders with a given column removed.

Parameters

string $column

Return Value

array

$this union(Builder|Closure $query, bool $all = false)

Add a union statement to the query.

Parameters

Builder|Closure $query
bool $all

Return Value

$this

$this unionAll(Builder|Closure $query)

Add a union all statement to the query.

Parameters

Builder|Closure $query

Return Value

$this

$this lock(string|bool $value = true)

Lock the selected rows in the table.

Parameters

string|bool $value

Return Value

$this

Builder lockForUpdate()

Lock the selected rows in the table for updating.

Return Value

Builder

Builder sharedLock()

Share lock the selected rows in the table.

Return Value

Builder

string toSql()

Get the SQL representation of the query.

Return Value

string

mixed|Builder find(int|string $id, array $columns = ['*'])

Execute a query for a single record by ID.

Parameters

int|string $id
array $columns

Return Value

mixed|Builder

mixed value(string $column)

Get a single column's value from the first result of a query.

Parameters

string $column

Return Value

mixed

Collection get(array|string $columns = ['*'])

Execute the query as a "select" statement.

Parameters

array|string $columns

Return Value

Collection

protected array runSelect()

Run the query as a "select" statement against the connection.

Return Value

array

LengthAwarePaginator paginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Paginate the given query into a simple paginator.

Parameters

int $perPage
array $columns
string $pageName
int|null $page

Return Value

LengthAwarePaginator

Paginator simplePaginate(int $perPage = 15, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Get a paginator only supporting simple next and previous links.

This is more efficient on larger data-sets, etc.

Parameters

int $perPage
array $columns
string $pageName
int|null $page

Return Value

Paginator

int getCountForPagination(array $columns = ['*'])

Get the count of the total records for the paginator.

Parameters

array $columns

Return Value

int

protected array runPaginationCountQuery(array $columns = ['*'])

Run a pagination count query.

Parameters

array $columns

Return Value

array

protected Builder cloneForPaginationCount()

Clone the existing query instance for usage in a pagination subquery.

Return Value

Builder

protected array withoutSelectAliases(array $columns)

Remove the column aliases since they will break count queries.

Parameters

array $columns

Return Value

array

LazyCollection cursor()

Get a lazy collection for the given query.

Return Value

LazyCollection

protected void enforceOrderBy()

Throw an exception if the query doesn't have an orderBy clause.

Return Value

void

Exceptions

RuntimeException

Collection pluck(string $column, string|null $key = null)

Get an array with the values of a given column.

Parameters

string $column
string|null $key

Return Value

Collection

protected string|null stripTableForPluck(string $column)

Strip off the table name or alias from a column identifier.

Parameters

string $column

Return Value

string|null

protected Collection pluckFromObjectColumn(array $queryResult, string $column, string $key)

Retrieve column values from rows represented as objects.

Parameters

array $queryResult
string $column
string $key

Return Value

Collection

protected Collection pluckFromArrayColumn(array $queryResult, string $column, string $key)

Retrieve column values from rows represented as arrays.

Parameters

array $queryResult
string $column
string $key

Return Value

Collection

string implode(string $column, string $glue = '')

Concatenate values of a given column as a string.

Parameters

string $column
string $glue

Return Value

string

bool exists()

Determine if any rows exist for the current query.

Return Value

bool

bool doesntExist()

Determine if no rows exist for the current query.

Return Value

bool

mixed existsOr(Closure $callback)

Execute the given callback if no rows exist for the current query.

Parameters

Closure $callback

Return Value

mixed

mixed doesntExistOr(Closure $callback)

Execute the given callback if rows exist for the current query.

Parameters

Closure $callback

Return Value

mixed

int count(string $columns = '*')

Retrieve the "count" result of the query.

Parameters

string $columns

Return Value

int

mixed min(string $column)

Retrieve the minimum value of a given column.

Parameters

string $column

Return Value

mixed

mixed max(string $column)

Retrieve the maximum value of a given column.

Parameters

string $column

Return Value

mixed

mixed sum(string $column)

Retrieve the sum of the values of a given column.

Parameters

string $column

Return Value

mixed

mixed avg(string $column)

Retrieve the average of the values of a given column.

Parameters

string $column

Return Value

mixed

mixed average(string $column)

Alias for the "avg" method.

Parameters

string $column

Return Value

mixed

mixed aggregate(string $function, array $columns = ['*'])

Execute an aggregate function on the database.

Parameters

string $function
array $columns

Return Value

mixed

float|int numericAggregate(string $function, array $columns = ['*'])

Execute a numeric aggregate function on the database.

Parameters

string $function
array $columns

Return Value

float|int

protected $this setAggregate(string $function, array $columns)

Set the aggregate property without running the query.

Parameters

string $function
array $columns

Return Value

$this

protected mixed onceWithColumns(array $columns, callable $callback)

Execute the given callback while selecting the given columns.

After running the callback, the columns are reset to the original value.

Parameters

array $columns
callable $callback

Return Value

mixed

bool insert(array $values)

Insert a new record into the database.

Parameters

array $values

Return Value

bool

int insertOrIgnore(array $values)

Insert a new record into the database while ignoring errors.

Parameters

array $values

Return Value

int

int insertGetId(array $values, string|null $sequence = null)

Insert a new record and get the value of the primary key.

Parameters

array $values
string|null $sequence

Return Value

int

int insertUsing(array $columns, Closure|Builder|string $query)

Insert new records into the table using a subquery.

Parameters

array $columns
Closure|Builder|string $query

Return Value

int

int update(array $values)

Update a record in the database.

Parameters

array $values

Return Value

int

bool updateOrInsert(array $attributes, array $values = [])

Insert or update a record matching the attributes, and fill it with values.

Parameters

array $attributes
array $values

Return Value

bool

int increment(string $column, float|int $amount = 1, array $extra = [])

Increment a column's value by a given amount.

Parameters

string $column
float|int $amount
array $extra

Return Value

int

Exceptions

InvalidArgumentException

int decrement(string $column, float|int $amount = 1, array $extra = [])

Decrement a column's value by a given amount.

Parameters

string $column
float|int $amount
array $extra

Return Value

int

Exceptions

InvalidArgumentException

int delete(mixed $id = null)

Delete a record from the database.

Parameters

mixed $id

Return Value

int

void truncate()

Run a truncate statement on the table.

Return Value

void

Builder newQuery()

Get a new instance of the query builder.

Return Value

Builder

protected Builder forSubQuery()

Create a new query instance for a sub-query.

Return Value

Builder

Expression raw(mixed $value)

Create a raw database expression.

Parameters

mixed $value

Return Value

Expression

array getBindings()

Get the current query value bindings in a flattened array.

Return Value

array

array getRawBindings()

Get the raw array of bindings.

Return Value

array

$this setBindings(array $bindings, string $type = 'where')

Set the bindings on the query builder.

Parameters

array $bindings
string $type

Return Value

$this

Exceptions

InvalidArgumentException

$this addBinding(mixed $value, string $type = 'where')

Add a binding to the query.

Parameters

mixed $value
string $type

Return Value

$this

Exceptions

InvalidArgumentException

$this mergeBindings(Builder $query)

Merge an array of bindings into our bindings.

Parameters

Builder $query

Return Value

$this

protected array cleanBindings(array $bindings)

Remove all of the expressions from a list of bindings.

Parameters

array $bindings

Return Value

array

protected string defaultKeyName()

Get the default key name of the table.

Return Value

string

ConnectionInterface getConnection()

Get the database connection instance.

Return Value

ConnectionInterface

Processor getProcessor()

Get the database query processor instance.

Return Value

Processor

Grammar getGrammar()

Get the query grammar instance.

Return Value

Grammar

$this useWritePdo()

Use the write pdo for query.

Return Value

$this

protected bool isQueryable(mixed $value)

Determine if the value is a query builder instance or a Closure.

Parameters

mixed $value

Return Value

bool

Builder cloneWithout(array $properties)

Clone the query without the given properties.

Parameters

array $properties

Return Value

Builder

Builder cloneWithoutBindings(array $except)

Clone the query without the given bindings.

Parameters

array $except

Return Value

Builder

$this dump()

Dump the current SQL and bindings.

Return Value

$this

void dd()

Die and dump the current SQL and bindings.

Return Value

void

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/7.x/Illuminate/Database/Query/Builder.html