class Builder implements Builder

Traits

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{select: list<mixed>, from: list<mixed>, join: list<mixed>, where: list<mixed>, groupBy: list<mixed>, having: list<mixed>, order: list<mixed>, union: list<mixed>, unionOrder: list<mixed>} $bindings

The current query value bindings.

null|Expression|string>} $aggregate

An aggregate function and column to be run.

null|Expression|string> $columns

The columns that should be returned.

bool|array $distinct

Indicates if the query returns distinct results.

Expression|string|null $from

The table which the query is targeting.

IndexHint|null $indexHint

The index hint for the query.

array|null $joins

The table joins for the query.

array $wheres

The where constraints for the query.

array|null $groups

The groupings for the query.

array|null $havings

The having constraints for the query.

array|null $orders

The orderings for the query.

int|null $limit

The maximum number of records to return.

array|null $groupLimit

The maximum number of records to return per group.

int|null $offset

The number of records to skip.

array|null $unions

The query union statements.

int|null $unionLimit

The maximum number of union records to return.

int|null $unionOffset

The number of union records to skip.

array|null $unionOrders

The orderings for the union query.

string|bool|null $lock

Indicates whether row locking is being used.

int|null $timeout

The query execution timeout in seconds.

array $beforeQueryCallbacks

The callbacks that should be invoked before the query is executed.

protected array $afterQueryCallbacks

The callbacks that should be invoked after retrieving data from the database.

string[] $operators

All of the available clause operators.

string[] $bitwiseOperators

All of the available bitwise operators.

bool $useWritePdo

Whether to use write pdo for the select.

array $fetchUsing

The PDO fetch mode arguments for the query.

Methods

wherePast(array|string $columns)

Add a where clause to determine if a "date" column is in the past to the query.

whereNowOrPast(array|string $columns)

Add a where clause to determine if a "date" column is in the past or now to the query.

orWherePast(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the past to the query.

orWhereNowOrPast(array|string $columns)

Add a where clause to determine if a "date" column is in the past or now to the query.

whereFuture(array|string $columns)

Add a where clause to determine if a "date" column is in the future to the query.

whereNowOrFuture(array|string $columns)

Add a where clause to determine if a "date" column is in the future or now to the query.

orWhereFuture(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the future to the query.

orWhereNowOrFuture(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the future or now to the query.

wherePastOrFuture(array|string $columns, string $operator, string $boolean)

Add an "where" clause to determine if a "date" column is in the past or future.

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

Add a "where date" clause to determine if a "date" column is today to the query.

whereBeforeToday(array|string $columns)

Add a "where date" clause to determine if a "date" column is before today.

whereTodayOrBefore(array|string $columns)

Add a "where date" clause to determine if a "date" column is today or before to the query.

whereAfterToday(array|string $columns)

Add a "where date" clause to determine if a "date" column is after today.

whereTodayOrAfter(array|string $columns)

Add a "where date" clause to determine if a "date" column is today or after to the query.

orWhereToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today to the query.

orWhereBeforeToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is before today.

orWhereTodayOrBefore(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today or before to the query.

orWhereAfterToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is after today.

orWhereTodayOrAfter(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today or after to the query.

whereTodayBeforeOrAfter(array|string $columns, string $operator, string $boolean)

Add a "where date" clause to determine if a "date" column is today or after to the query.

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

Apply the callback if the given "value" is (or resolves to) truthy.

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

Apply the callback if the given "value" is (or resolves to) falsy.

bool
chunk(int $count, callable $callback)

Chunk the results of the query.

chunkMap(callable $callback, int $count = 1000)

Run a map over each item while chunking.

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
chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)

Chunk the results of a query by comparing IDs in descending order.

bool
orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, SortDirection|bool $descending = false)

Chunk the results of a query by comparing IDs in a given order.

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.

lazy(int $chunkSize = 1000)

Query lazily, by chunks of the given size.

lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Query lazily, by chunking the results of a query by comparing IDs.

lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Query lazily, by chunking the results of a query by comparing IDs in descending order.

orderedLazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null, SortDirection|bool $descending = false)

Query lazily, by chunking the results of a query by comparing IDs in a given order.

null|TValue
first(array|string $columns = ['*'])

Execute the query and get the first result.

TValue
firstOrFail(array|string $columns = ['*'], string|null $message = null)

Execute the query and get the first result or throw an exception.

TValue
sole(array|string $columns = ['*'])

Execute the query and get the first result if it's the sole matching record.

paginateUsingCursor(int $perPage, array|string $columns = ['*'], string $cursorName = 'cursor', Cursor|string|null $cursor = null)

Paginate the given query using a cursor paginator.

string
getOriginalColumnNameForCursorPagination(Builder|Builder $builder, string $parameter)

Get the original column name of the given column, without any aliasing.

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

Create a new length-aware paginator instance.

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

Create a new simple paginator instance.

cursorPaginator(Collection $items, int $perPage, Cursor|null $cursor, array $options)

Create a new cursor paginator instance.

tap(callable $callback)

Pass the query to a given callback and then return it.

TReturn is null|TReturn)
pipe(callable $callback)

Pass the query to a given callback and return the result.

explain()

Explains the query.

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

Forward a method call to the given object.

mixed
forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object, returning $this if the forwarded call returned itself.

static never
throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

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

Register a custom macro.

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

Mix another object into the class.

static bool
hasMacro(string $name)

Check if macro is registered.

static void
flushMacros()

Flush the existing macros.

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

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Handle dynamic method calls into the method.

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

Create a new query builder instance.

select(mixed $columns = ['*'])

Set the columns to be selected.

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

Add a subselect expression to the query.

selectExpression(Expression $expression, string $as)

Add an expression to the select clause.

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

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

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

Makes "from" fetch from a subquery.

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

Add a raw "from" clause to the query.

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

Creates a subquery and parse it.

array
parseSub(mixed $query)

Parse the subquery into SQL and bindings.

prependDatabaseNameIfCrossDatabaseQuery(Builder|Builder|Relation $query)

Prepend the database name if the given query is on another database.

addSelect(mixed $column)

Add a new select column to the query.

selectVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector, string|null $as = null)

Add a vector-similarity selection to the query.

distinct()

Force the query to only return distinct results.

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

Set the table which the query is targeting.

useIndex(string $index)

Add an index hint to suggest a query index.

forceIndex(string $index)

Add an index hint to force a query index.

ignoreIndex(string $index)

Add an index hint to ignore a query index.

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

Add a "join" clause to the query.

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

Add a "join where" clause to the query.

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

Add a "subquery join" clause to the query.

joinLateral(Closure|Builder|Builder|string $query, string $as, string $type = 'inner')

Add a "lateral join" clause to the query.

leftJoinLateral(Closure|Builder|Builder|string $query, string $as)

Add a lateral left join to the query.

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

Add a left join to the query.

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

Add a "join where" clause to the query.

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

Add a subquery left join to the query.

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

Add a right join to the query.

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

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

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

Add a subquery right join to the query.

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

Add a "cross join" clause to the query.

crossJoinSub(Closure|Builder|Builder|string $query, string $as)

Add a subquery cross join to the query.

straightJoin(Expression|string $table, Closure|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a straight join to the query.

straightJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, Expression|string $second)

Add a straight join where clause to the query.

straightJoinSub(Closure|Builder|Builder|string $query, string $as, Closure|Expression|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a subquery straight join to the query.

newJoinClause(Builder $parentQuery, string $type, Expression|string $table)

Get a new "join" clause.

newJoinLateralClause(Builder $parentQuery, string $type, Expression|string $table)

Get a new "join lateral" clause.

mergeWheres(array $wheres, array $bindings)

Merge an array of "where" clauses and bindings.

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

Add a basic "where" clause to the query.

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

Add an array of "where" clauses to the query.

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

Prepare the value and operator for a where clause.

bool
invalidOperatorAndValue(mixed $operator, mixed $value)

Determine if the given operator and value combination is legal.

bool
invalidOperator(mixed $operator)

Determine if the given operator is supported.

bool
isBitwiseOperator(string $operator)

Determine if the operator is a bitwise operator.

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

Add an "or where" clause to the query.

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

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

orWhereNot(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)

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

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

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

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

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

whereVectorSimilarTo(Expression|string $column, Collection|Arrayable|array|string $vector, float $minSimilarity = 0.6, bool $order = true)

Add a vector similarity clause to the query, filtering by minimum similarity and ordering by similarity.

whereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance, string $boolean = 'and')

Add a vector distance "where" clause to the query.

orWhereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance)

Add a vector distance "or where" clause to the query.

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

Add a raw "where" clause to the query.

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

Add a raw "or where" clause to the query.

whereLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and', bool $not = false)

Add a "where like" clause to the query.

orWhereLike(Expression|string $column, string $value, bool $caseSensitive = false)

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

whereNotLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and')

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

orWhereNotLike(Expression|string $column, string $value, bool $caseSensitive = false)

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

whereNullSafeEquals(Expression|string $column, mixed $value, string $boolean = 'and')

Add a null-safe equality clause to the query.

orWhereNullSafeEquals(Expression|string $column, mixed $value)

Add an "or" null-safe equality clause to the query.

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

Add a "where in" clause to the query.

orWhereIn(Expression|string $column, mixed $values)

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

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

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

orWhereNotIn(Expression|string $column, mixed $values)

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

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

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

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

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

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

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

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

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

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

Add a "where null" clause to the query.

orWhereNull(string|array|Expression $column)

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

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

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

whereBetween(Builder|Builder|Expression|string $column, iterable $values, string $boolean = 'and', bool $not = false)

Add a "where between" statement to the query.

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

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

orWhereBetween(Builder|Builder|Expression|string $column, iterable $values)

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

orWhereBetweenColumns(Expression|string $column, array $values)

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

whereNotBetween(Builder|Builder|Expression|string $column, iterable $values, string $boolean = 'and')

Add a "where not between" statement to the query.

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

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

orWhereNotBetween(Builder|Builder|Expression|string $column, iterable $values)

Add an "or where not between" statement to the query.

orWhereNotBetweenColumns(Expression|string $column, array $values)

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

whereValueBetween(mixed $value, array $columns, string $boolean = 'and', bool $not = false)

Add a "where between columns" statement using a value to the query.

orWhereValueBetween(mixed $value, array $columns)

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

whereValueNotBetween(mixed $value, array $columns, string $boolean = 'and')

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

orWhereValueNotBetween(mixed $value, array $columns)

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

orWhereNotNull(array|Expression|string $column)

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

whereDate(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where date" statement to the query.

orWhereDate(Expression|string $column, mixed $operator, mixed $value = null)

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

whereTime(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where time" statement to the query.

orWhereTime(Expression|string $column, mixed $operator, mixed $value = null)

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

whereDay(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where day" statement to the query.

orWhereDay(Expression|string $column, mixed $operator, mixed $value = null)

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

whereMonth(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where month" statement to the query.

orWhereMonth(Expression|string $column, mixed $operator, mixed $value = null)

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

whereYear(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where year" statement to the query.

orWhereYear(Expression|string $column, mixed $operator, mixed $value = null)

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

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

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

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

Add a nested "where" statement to the query.

forNestedWhere()

Create a new query instance for nested where condition.

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

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

whereSub(Expression|string $column, string $operator, Closure|Builder|Builder $callback, string $boolean)

Add a full sub-select to the query.

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

Add an "exists" clause to the query.

orWhereExists(Closure|Builder|Builder $callback, bool $not = false)

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

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

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

orWhereNotExists(Closure|Builder|Builder $callback)

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

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

Add an "exists" clause to the query.

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

Adds a where condition using row values.

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

Adds an or where condition using row values.

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

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

orWhereJsonContains(string $column, mixed $value)

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

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

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

orWhereJsonDoesntContain(string $column, mixed $value)

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

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

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

orWhereJsonOverlaps(string $column, mixed $value)

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

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

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

orWhereJsonDoesntOverlap(string $column, mixed $value)

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

whereJsonContainsKey(string $column, string $boolean = 'and', bool $not = false)

Add a clause that determines if a JSON path exists to the query.

orWhereJsonContainsKey(string $column)

Add an "or" clause that determines if a JSON path exists to the query.

whereJsonDoesntContainKey(string $column, string $boolean = 'and')

Add a clause that determines if a JSON path does not exist to the query.

orWhereJsonDoesntContainKey(string $column)

Add an "or" clause that determines if a JSON path does not exist to the query.

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

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

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

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

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.

whereFullText(string|array $columns, string $value, array $options = [], string $boolean = 'and')

Add a "where fulltext" clause to the query.

orWhereFullText(string|array $columns, string $value, array $options = [])

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

whereAll(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where" clause to the query for multiple columns with "and" conditions between them.

orWhereAll(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query for multiple columns with "and" conditions between them.

whereAny(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where" clause to the query for multiple columns with "or" conditions between them.

orWhereAny(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query for multiple columns with "or" conditions between them.

whereNone(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where not" clause to the query for multiple columns where none of the conditions should be true.

orWhereNone(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where not" clause to the query for multiple columns where none of the conditions should be true.

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

Add a "group by" clause to the query.

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

Add a raw "groupBy" clause to the query.

having(Expression|Closure|string $column, DateTimeInterface|string|int|float|null $operator = null, Expression|DateTimeInterface|string|int|float|null $value = null, string $boolean = 'and')

Add a "having" clause to the query.

orHaving(Expression|Closure|string $column, DateTimeInterface|string|int|float|null $operator = null, Expression|DateTimeInterface|string|int|float|null $value = null)

Add an "or having" clause to the query.

havingNested(Closure $callback, string $boolean = 'and')

Add a nested "having" statement to the query.

addNestedHavingQuery(Builder $query, string $boolean = 'and')

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

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

Add a "having null" clause to the query.

orHavingNull(string $column)

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

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

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

orHavingNotNull(string $column)

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

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

Add a "having between" clause to the query.

havingNotBetween(string $column, iterable $values, string $boolean = 'and')

Add a "having not between" clause to the query.

orHavingBetween(string $column, iterable $values)

Add an "or having between" clause to the query.

orHavingNotBetween(string $column, iterable $values)

Add an "or having not between" clause to the query.

array
resolveDatePeriodBounds(DatePeriod $period)

Resolve the start and end dates from a DatePeriod.

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

Add a raw "having" clause to the query.

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

Add a raw "or having" clause to the query.

orderBy(Closure|Builder|Builder|Expression|string $column, SortDirection|string $direction = SortDirection::Ascending)

Add an "order by" clause to the query.

orderByDesc(Closure|Builder|Builder|Expression|string $column)

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

latest(Closure|Builder|Expression|string $column = 'created_at')

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

oldest(Closure|Builder|Expression|string $column = 'created_at')

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

orderByVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector)

Add a vector-distance "order by" clause to the query.

inRandomOrder(string|int $seed = '')

Put the query's results in random order.

inOrderOf(Expression|string $column, Arrayable|array $values)

Add an order clause for a given sequence of values.

orderByRaw(string $sql, mixed $bindings = [])

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

skip(int $value)

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

offset(int|null $value)

Set the "offset" value of the query.

take(int $value)

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

limit(int|null $value)

Set the "limit" value of the query.

groupLimit(int $value, string $column)

Add a "group limit" clause to the query.

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

Set the limit and offset for a given page.

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

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

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

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

reorder(Closure|Builder|Expression|string|null $column = null, SortDirection|string $direction = SortDirection::Ascending)

Remove all existing orders and optionally add a new order.

reorderDesc(Closure|Builder|Expression|string|null $column)

Add descending "reorder" clause to the query.

array
removeExistingOrdersFor(string $column)

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

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

Add a "union" statement to the query.

unionAll(Closure|Builder|Builder $query)

Add a "union all" statement to the query.

lock(string|bool $value = true)

Lock the selected rows in the table.

lockForUpdate()

Lock the selected rows in the table for updating.

sharedLock()

Share lock the selected rows in the table.

timeout(int|null $seconds)

Set a query execution timeout in seconds.

beforeQuery(callable $callback)

Register a closure to be invoked before the query is executed.

void
applyBeforeQueryCallbacks()

Invoke the "before query" modification callbacks.

afterQuery(Closure $callback)

Register a closure to be invoked after the query is executed.

applyAfterQueryCallbacks(Collection $result)

Invoke the "after query" modification callbacks.

string
toSql()

Get the SQL representation of the query.

string
toRawSql()

Get the raw SQL representation of the query with embedded bindings.

object|array|null
find(int|string $id, Expression|array|string $columns = ['*'])

Execute a query for a single record by ID.

mixed
findOr(mixed $id, Closure|Expression|array|string $columns = ['*'], Closure|null $callback = null)

Execute a query for a single record by ID or call a callback.

mixed
value(string $column)

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

mixed
rawValue(string $expression, array $bindings = [])

Get a single expression value from the first result of a query.

mixed
soleValue(string $column)

Get a single column's value from the first result of a query if it's the sole matching record.

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

Execute the query as a "select" statement.

array
runSelect()

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

withoutGroupLimitKeys(Collection $items)

Remove the group limit keys from the results in the collection.

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

Paginate the given query into a simple paginator.

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

Get a paginator only supporting simple next and previous links.

cursorPaginate(int|null $perPage = 15, Expression|array|string $columns = ['*'], string $cursorName = 'cursor', Cursor|string|null $cursor = null)

Get a paginator only supporting simple next and previous links.

ensureOrderForCursorPagination(bool $shouldReverse = false)

Ensure the proper order by required for cursor pagination.

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

Get the count of the total records for the paginator.

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

Run a pagination count query.

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.

cursor()

Get a lazy collection for the given query.

void
enforceOrderBy()

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

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

Get a collection instance containing the values of a given column.

string|null
stripTableForPluck(Expression|string|null $column)

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

pluckFromObjectColumn(array $queryResult, string $column, string|null $key)

Retrieve column values from rows represented as objects.

pluckFromArrayColumn(array $queryResult, string $column, string|null $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(Expression|string $columns = '*')

Retrieve the "count" result of the query.

mixed
min(Expression|string $column)

Retrieve the minimum value of a given column.

mixed
max(Expression|string $column)

Retrieve the maximum value of a given column.

mixed
sum(Expression|string $column)

Retrieve the sum of the values of a given column.

mixed
avg(Expression|string $column)

Retrieve the average of the values of a given column.

mixed
average(Expression|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.

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 new records into the database.

int
insertOrIgnore(array $values)

Insert new records into the database while ignoring errors.

insertOrIgnoreReturning(array $values, array $returning = ['*'], array|string|null $uniqueBy = null)

Insert records while ignoring conflicts and return the inserted rows.

int|string
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|Builder|string $query)

Insert new records into the table using a subquery.

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

Insert new records into the table using a subquery while ignoring errors.

int
update(array $values)

Update records in the database.

int
updateFrom(array $values)

Update records in a PostgreSQL database using the update from syntax.

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

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

int
upsert(array $values, array|string $uniqueBy, array|null $update = null)

Insert new records or update the existing ones.

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

Increment a column's value by a given amount.

int
incrementEach(array $columns, array $extra = [])

Increment the given column's values by the given amounts.

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

Decrement a column's value by a given amount.

int
decrementEach(array $columns, array $extra = [])

Decrement the given column's values by the given amounts.

int
delete(mixed $id = null)

Delete records from the database.

void
truncate()

Run a "truncate" statement on the table.

newQuery()

Get a new instance of the query builder.

forSubQuery()

Create a new query instance for a sub-query.

array
getColumns()

Get all of the query builder's columns in a text-only array with all expressions evaluated.

raw(mixed $value)

Create a raw database expression.

getUnionBuilders()

Get the query builder instances that are used in the union of the query.

int|null
getLimit()

Get the "limit" value for the query or null if it's not set.

int|null
getOffset()

Get the "offset" value for the query or null if it's not set.

array
getBindings()

Get the current query value bindings in a flattened array.

array
getRawBindings()

Get the raw array of bindings.

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

Set the bindings on the query builder.

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

Add a binding to the query.

mixed
castBinding(mixed $value)

Cast the given binding value.

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.

mixed
flattenValue(mixed $value)

Get a scalar type value from an unknown type of input.

string
defaultKeyName()

Get the default key name of the table.

getConnection()

Get the database connection instance.

void
ensureConnectionSupportsVectors()

Ensure the database connection supports vector queries.

getProcessor()

Get the database query processor instance.

getGrammar()

Get the query grammar instance.

useWritePdo()

Use the "write" PDO connection when executing the query.

fetchUsing(mixed ...$fetchUsing)

Set the PDO fetch mode arguments for the query.

bool
isQueryable(mixed $value)

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

clone()

Clone the query.

cloneWithout(array $properties)

Clone the query without the given properties.

cloneWithoutBindings(array $except)

Clone the query without the given bindings.

dump(mixed ...$args)

Dump the current SQL and bindings.

dumpRawSql()

Dump the raw current SQL with embedded bindings.

never
dd()

Die and dump the current SQL and bindings.

never
ddRawSql()

Die and dump the current SQL with embedded bindings.

static void
flushState()

Flush all static state.

Details

BuildsWhereDateClauses wherePast(array|string $columns)

Add a where clause to determine if a "date" column is in the past to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereNowOrPast(array|string $columns)

Add a where clause to determine if a "date" column is in the past or now to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWherePast(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the past to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereNowOrPast(array|string $columns)

Add a where clause to determine if a "date" column is in the past or now to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereFuture(array|string $columns)

Add a where clause to determine if a "date" column is in the future to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereNowOrFuture(array|string $columns)

Add a where clause to determine if a "date" column is in the future or now to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereFuture(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the future to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereNowOrFuture(array|string $columns)

Add an "or where" clause to determine if a "date" column is in the future or now to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

protected BuildsWhereDateClauses wherePastOrFuture(array|string $columns, string $operator, string $boolean)

Add an "where" clause to determine if a "date" column is in the past or future.

Parameters

array|string $columns
string $operator
string $boolean

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereToday(array|string $columns, string $boolean = 'and')

Add a "where date" clause to determine if a "date" column is today to the query.

Parameters

array|string $columns
string $boolean

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereBeforeToday(array|string $columns)

Add a "where date" clause to determine if a "date" column is before today.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereTodayOrBefore(array|string $columns)

Add a "where date" clause to determine if a "date" column is today or before to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereAfterToday(array|string $columns)

Add a "where date" clause to determine if a "date" column is after today.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses whereTodayOrAfter(array|string $columns)

Add a "where date" clause to determine if a "date" column is today or after to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereBeforeToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is before today.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereTodayOrBefore(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today or before to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereAfterToday(array|string $columns)

Add an "or where date" clause to determine if a "date" column is after today.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

BuildsWhereDateClauses orWhereTodayOrAfter(array|string $columns)

Add an "or where date" clause to determine if a "date" column is today or after to the query.

Parameters

array|string $columns

Return Value

BuildsWhereDateClauses

protected BuildsWhereDateClauses whereTodayBeforeOrAfter(array|string $columns, string $operator, string $boolean)

Add a "where date" clause to determine if a "date" column is today or after to the query.

Parameters

array|string $columns
string $operator
string $boolean

Return Value

BuildsWhereDateClauses

in Conditionable at line 23
mixed when(mixed $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) truthy.

Parameters

mixed $value
callable|null $callback
callable|null $default

Return Value

mixed

in Conditionable at line 56
mixed unless(mixed $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) falsy.

Parameters

mixed $value
callable|null $callback
callable|null $default

Return Value

mixed

in BuildsQueries at line 39
bool chunk(int $count, callable $callback)

Chunk the results of the query.

Parameters

int $count
callable $callback

Return Value

bool

in BuildsQueries at line 90
Collection chunkMap(callable $callback, int $count = 1000)

Run a map over each item while chunking.

Parameters

callable $callback
int $count

Return Value

Collection

in BuildsQueries at line 108
bool each(callable $callback, int $count = 1000)

Execute a callback over each item while chunking.

Parameters

callable $callback
int $count

Return Value

bool

in BuildsQueries at line 124
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

in BuildsQueries at line 134
bool chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)

Chunk the results of a query by comparing IDs in descending order.

Parameters

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

Return Value

bool

in BuildsQueries at line 144
bool orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, SortDirection|bool $descending = false)

Chunk the results of a query by comparing IDs in a given order.

Parameters

int $count
callable $callback
string|null $column
string|null $alias
SortDirection|bool $descending

Return Value

bool

in BuildsQueries at line 212
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

in BuildsQueries at line 228
LazyCollection lazy(int $chunkSize = 1000)

Query lazily, by chunks of the given size.

Parameters

int $chunkSize

Return Value

LazyCollection

in BuildsQueries at line 258
LazyCollection lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Query lazily, by chunking the results of a query by comparing IDs.

Parameters

int $chunkSize
string|null $column
string|null $alias

Return Value

LazyCollection

in BuildsQueries at line 268
LazyCollection lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Query lazily, by chunking the results of a query by comparing IDs in descending order.

Parameters

int $chunkSize
string|null $column
string|null $alias

Return Value

LazyCollection

in BuildsQueries at line 278
protected LazyCollection orderedLazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null, SortDirection|bool $descending = false)

Query lazily, by chunking the results of a query by comparing IDs in a given order.

Parameters

int $chunkSize
string|null $column
string|null $alias
SortDirection|bool $descending

Return Value

LazyCollection

in BuildsQueries at line 321
null|TValue first(array|string $columns = ['*'])

Execute the query and get the first result.

Parameters

array|string $columns

Return Value

null|TValue

in BuildsQueries at line 334
TValue firstOrFail(array|string $columns = ['*'], string|null $message = null)

Execute the query and get the first result or throw an exception.

Parameters

array|string $columns
string|null $message

Return Value

TValue

Exceptions

RecordNotFoundException

in BuildsQueries at line 351
TValue sole(array|string $columns = ['*'])

Execute the query and get the first result if it's the sole matching record.

Parameters

array|string $columns

Return Value

TValue

Exceptions

RecordsNotFoundException
MultipleRecordsFoundException

in BuildsQueries at line 374
protected CursorPaginator paginateUsingCursor(int $perPage, array|string $columns = ['*'], string $cursorName = 'cursor', Cursor|string|null $cursor = null)

Paginate the given query using a cursor paginator.

Parameters

int $perPage
array|string $columns
string $cursorName
Cursor|string|null $cursor

Return Value

CursorPaginator

in BuildsQueries at line 469
protected string getOriginalColumnNameForCursorPagination(Builder|Builder $builder, string $parameter)

Get the original column name of the given column, without any aliasing.

Parameters

Builder|Builder $builder
string $parameter

Return Value

string

in BuildsQueries at line 491
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

in BuildsQueries at line 505
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

in BuildsQueries at line 518
protected CursorPaginator cursorPaginator(Collection $items, int $perPage, Cursor|null $cursor, array $options)

Create a new cursor paginator instance.

Parameters

Collection $items
int $perPage
Cursor|null $cursor
array $options

Return Value

CursorPaginator

in BuildsQueries at line 534
BuildsQueries tap(callable $callback)

Pass the query to a given callback and then return it.

Parameters

callable $callback

Return Value

BuildsQueries

in BuildsQueries at line 549
TReturn is null|TReturn) pipe(callable $callback)

Pass the query to a given callback and return the result.

Parameters

callable $callback

Return Value

TReturn is null|TReturn)

in ExplainsQueries at line 14
Collection explain()

Explains the query.

Return Value

Collection

in ForwardsCalls at line 22
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

in ForwardsCalls at line 52
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Forward a method call to the given object, returning $this if the forwarded call returned itself.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in ForwardsCalls at line 66
static protected never throwBadMethodCallException(string $method)

Throw a bad method call exception for the given method.

Parameters

string $method

Return Value

never

Exceptions

BadMethodCallException

in Macroable at line 28
static void macro(string $name, callable|object $macro)

Register a custom macro.

Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.

Parameters

string $name
callable|object $macro

Return Value

void

in Macroable at line 41
static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

in Macroable at line 57
static bool hasMacro(string $name)

Check if macro is registered.

Parameters

string $name

Return Value

bool

in Macroable at line 68
static void flushMacros()

Flush the existing macros.

Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.

Return Value

void

in Macroable at line 78
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

at line 4171
mixed __call(string $method, array $parameters)

Handle dynamic method calls into the method.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

at line 245
__construct(ConnectionInterface $connection, Grammar|null $grammar = null, Processor|null $processor = null)

Create a new query builder instance.

Parameters

ConnectionInterface $connection
Grammar|null $grammar
Processor|null $processor

at line 258
Builder select(mixed $columns = ['*'])

Set the columns to be selected.

Parameters

mixed $columns

Return Value

Builder

at line 285
Builder selectSub(Closure|Builder|Builder|string $query, string $as)

Add a subselect expression to the query.

Parameters

Closure|Builder|Builder|string $query
string $as

Return Value

Builder

Exceptions

InvalidArgumentException

at line 298
Builder selectExpression(Expression $expression, string $as)

Add an expression to the select clause.

Parameters

Expression $expression
string $as

Return Value

Builder

at line 308
Builder selectRaw(string $expression, array $bindings = [])

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

Parameters

string $expression
array $bindings

Return Value

Builder

at line 326
Builder fromSub(Closure|Builder|Builder|string $query, string $as)

Makes "from" fetch from a subquery.

Parameters

Closure|Builder|Builder|string $query
string $as

Return Value

Builder

Exceptions

InvalidArgumentException

at line 336
Builder fromRaw(Expression|string $expression, mixed $bindings = [])

Add a raw "from" clause to the query.

Parameters

Expression|string $expression
mixed $bindings

Return Value

Builder

at line 352
protected array createSub(Closure|Builder|Builder|string $query)

Creates a subquery and parse it.

Parameters

Closure|Builder|Builder|string $query

Return Value

array

at line 371
protected array parseSub(mixed $query)

Parse the subquery into SQL and bindings.

Parameters

mixed $query

Return Value

array

Exceptions

InvalidArgumentException

at line 389
protected Builder|Builder|Relation prependDatabaseNameIfCrossDatabaseQuery(Builder|Builder|Relation $query)

Prepend the database name if the given query is on another database.

Parameters

Builder|Builder|Relation $query

Return Value

Builder|Builder|Relation

at line 406
Builder addSelect(mixed $column)

Add a new select column to the query.

Parameters

mixed $column

Return Value

Builder

at line 440
Builder selectVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector, string|null $as = null)

Add a vector-similarity selection to the query.

Parameters

Expression|string $column
Collection|Arrayable|array|string $vector
string|null $as

Return Value

Builder

at line 468
Builder distinct()

Force the query to only return distinct results.

Return Value

Builder

at line 486
Builder from(Closure|Builder|Builder|Expression|string $table, string|null $as = null)

Set the table which the query is targeting.

Parameters

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

Return Value

Builder

at line 500
Builder useIndex(string $index)

Add an index hint to suggest a query index.

Parameters

string $index

Return Value

Builder

at line 510
Builder forceIndex(string $index)

Add an index hint to force a query index.

Parameters

string $index

Return Value

Builder

at line 520
Builder ignoreIndex(string $index)

Add an index hint to ignore a query index.

Parameters

string $index

Return Value

Builder

at line 530
Builder join(Expression|string $table, Closure|Expression|string $first, string|null $operator = null, mixed $second = null, string $type = 'inner', bool $where = false)

Add a "join" clause to the query.

Parameters

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

Return Value

Builder

at line 562
Builder joinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, Expression|string $second, string $type = 'inner')

Add a "join where" clause to the query.

Parameters

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

Return Value

Builder

at line 574
Builder joinSub(Closure|Builder|Builder|string $query, string $as, Closure|Expression|string $first, string|null $operator = null, mixed $second = null, string $type = 'inner', bool $where = false)

Add a "subquery join" clause to the query.

Parameters

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

Return Value

Builder

Exceptions

InvalidArgumentException

at line 590
Builder joinLateral(Closure|Builder|Builder|string $query, string $as, string $type = 'inner')

Add a "lateral join" clause to the query.

Parameters

Closure|Builder|Builder|string $query
string $as
string $type

Return Value

Builder

at line 608
Builder leftJoinLateral(Closure|Builder|Builder|string $query, string $as)

Add a lateral left join to the query.

Parameters

Closure|Builder|Builder|string $query
string $as

Return Value

Builder

at line 616
Builder leftJoin(Expression|string $table, Closure|Expression|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a left join to the query.

Parameters

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

Return Value

Builder

at line 624
Builder leftJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, Expression|string|null $second)

Add a "join where" clause to the query.

Parameters

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

Return Value

Builder

at line 634
Builder leftJoinSub(Closure|Builder|Builder|string $query, string $as, Closure|Expression|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a subquery left join to the query.

Parameters

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

Return Value

Builder

at line 642
Builder rightJoin(Expression|string $table, Closure|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a right join to the query.

Parameters

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

Return Value

Builder

at line 650
Builder rightJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, Expression|string $second)

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

Parameters

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

Return Value

Builder

at line 660
Builder rightJoinSub(Closure|Builder|Builder|string $query, string $as, Closure|Expression|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a subquery right join to the query.

Parameters

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

Return Value

Builder

at line 668
Builder crossJoin(Expression|string $table, Closure|Expression|string|null $first = null, string|null $operator = null, Expression|string|null $second = null)

Add a "cross join" clause to the query.

Parameters

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

Return Value

Builder

at line 682
Builder crossJoinSub(Closure|Builder|Builder|string $query, string $as)

Add a subquery cross join to the query.

Parameters

Closure|Builder|Builder|string $query
string $as

Return Value

Builder

at line 698
Builder straightJoin(Expression|string $table, Closure|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a straight join to the query.

Parameters

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

Return Value

Builder

at line 706
Builder straightJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, Expression|string $second)

Add a straight join where clause to the query.

Parameters

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

Return Value

Builder

at line 716
Builder straightJoinSub(Closure|Builder|Builder|string $query, string $as, Closure|Expression|string $first, string|null $operator = null, Expression|string|null $second = null)

Add a subquery straight join to the query.

Parameters

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

Return Value

Builder

at line 724
protected JoinClause newJoinClause(Builder $parentQuery, string $type, Expression|string $table)

Get a new "join" clause.

Parameters

Builder $parentQuery
string $type
Expression|string $table

Return Value

JoinClause

at line 732
protected JoinLateralClause newJoinLateralClause(Builder $parentQuery, string $type, Expression|string $table)

Get a new "join lateral" clause.

Parameters

Builder $parentQuery
string $type
Expression|string $table

Return Value

JoinLateralClause

at line 740
Builder mergeWheres(array $wheres, array $bindings)

Merge an array of "where" clauses and bindings.

Parameters

array $wheres
array $bindings

Return Value

Builder

at line 754
Builder where(Closure|Builder|Builder|Relation|Expression|array|string $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a basic "where" clause to the query.

Parameters

Closure|Builder|Builder|Relation|Expression|array|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 860
protected Builder 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

Builder

at line 878
array prepareValueAndOperator(mixed $value, mixed $operator, bool $useDefault = false)

Prepare the value and operator for a where clause.

Parameters

mixed $value
mixed $operator
bool $useDefault

Return Value

array

Exceptions

InvalidArgumentException

at line 895
protected bool invalidOperatorAndValue(mixed $operator, mixed $value)

Determine if the given operator and value combination is legal.

Prevents using Null values with invalid operators.

Parameters

mixed $operator
mixed $value

Return Value

bool

at line 904
protected bool invalidOperator(mixed $operator)

Determine if the given operator is supported.

Parameters

mixed $operator

Return Value

bool

at line 913
protected bool isBitwiseOperator(string $operator)

Determine if the operator is a bitwise operator.

Parameters

string $operator

Return Value

bool

at line 922
Builder orWhere(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query.

Parameters

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

Return Value

Builder

at line 936
Builder whereNot(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')

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

Parameters

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

Return Value

Builder

at line 950
Builder orWhereNot(Closure|string|array|Expression $column, mixed $operator = null, mixed $value = null)

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

Parameters

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

Return Value

Builder

at line 958
Builder whereColumn(Expression|string|array $first, string|null $operator = null, string|null $second = null, string $boolean = 'and')

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

Parameters

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

Return Value

Builder

at line 993
Builder orWhereColumn(Expression|string|array $first, string|null $operator = null, string|null $second = null)

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

Parameters

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

Return Value

Builder

at line 1004
Builder whereVectorSimilarTo(Expression|string $column, Collection|Arrayable|array|string $vector, float $minSimilarity = 0.6, bool $order = true)

Add a vector similarity clause to the query, filtering by minimum similarity and ordering by similarity.

Parameters

Expression|string $column
Collection|Arrayable|array|string $vector
float $minSimilarity

A value between 0.0 and 1.0, where 1.0 is identical.

bool $order

Return Value

Builder

at line 1024
Builder whereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance, string $boolean = 'and')

Add a vector distance "where" clause to the query.

Parameters

Expression|string $column
Collection|Arrayable|array|string $vector
float $maxDistance
string $boolean

Return Value

Builder

at line 1052
Builder orWhereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance)

Add a vector distance "or where" clause to the query.

Parameters

Expression|string $column
Collection|Arrayable|array|string $vector
float $maxDistance

Return Value

Builder

at line 1060
Builder whereRaw(Expression|string $sql, mixed $bindings = [], string $boolean = 'and')

Add a raw "where" clause to the query.

Parameters

Expression|string $sql
mixed $bindings
string $boolean

Return Value

Builder

at line 1072
Builder orWhereRaw(string $sql, mixed $bindings = [])

Add a raw "or where" clause to the query.

Parameters

string $sql
mixed $bindings

Return Value

Builder

at line 1080
Builder whereLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and', bool $not = false)

Add a "where like" clause to the query.

Parameters

Expression|string $column
string $value
bool $caseSensitive
string $boolean
bool $not

Return Value

Builder

at line 1098
Builder orWhereLike(Expression|string $column, string $value, bool $caseSensitive = false)

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

Parameters

Expression|string $column
string $value
bool $caseSensitive

Return Value

Builder

at line 1106
Builder whereNotLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and')

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

Parameters

Expression|string $column
string $value
bool $caseSensitive
string $boolean

Return Value

Builder

at line 1114
Builder orWhereNotLike(Expression|string $column, string $value, bool $caseSensitive = false)

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

Parameters

Expression|string $column
string $value
bool $caseSensitive

Return Value

Builder

at line 1122
Builder whereNullSafeEquals(Expression|string $column, mixed $value, string $boolean = 'and')

Add a null-safe equality clause to the query.

Parameters

Expression|string $column
mixed $value
string $boolean

Return Value

Builder

at line 1138
Builder orWhereNullSafeEquals(Expression|string $column, mixed $value)

Add an "or" null-safe equality clause to the query.

Parameters

Expression|string $column
mixed $value

Return Value

Builder

at line 1146
Builder whereIn(Expression|string $column, mixed $values, string $boolean = 'and', bool $not = false)

Add a "where in" clause to the query.

Parameters

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

Return Value

Builder

at line 1185
Builder orWhereIn(Expression|string $column, mixed $values)

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

Parameters

Expression|string $column
mixed $values

Return Value

Builder

at line 1193
Builder whereNotIn(Expression|string $column, mixed $values, string $boolean = 'and')

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

Parameters

Expression|string $column
mixed $values
string $boolean

Return Value

Builder

at line 1201
Builder orWhereNotIn(Expression|string $column, mixed $values)

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

Parameters

Expression|string $column
mixed $values

Return Value

Builder

at line 1209
Builder 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

Builder

at line 1231
Builder 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

Builder

at line 1239
Builder 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

Builder

at line 1247
Builder 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

Builder

at line 1255
Builder whereNull(string|array|Expression $columns, string $boolean = 'and', bool $not = false)

Add a "where null" clause to the query.

Parameters

string|array|Expression $columns
string $boolean
bool $not

Return Value

Builder

at line 1269
Builder orWhereNull(string|array|Expression $column)

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

Parameters

string|array|Expression $column

Return Value

Builder

at line 1277
Builder whereNotNull(string|array|Expression $columns, string $boolean = 'and')

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

Parameters

string|array|Expression $columns
string $boolean

Return Value

Builder

at line 1287
Builder whereBetween(Builder|Builder|Expression|string $column, iterable $values, string $boolean = 'and', bool $not = false)

Add a "where between" statement to the query.

Parameters

Builder|Builder|Expression|string $column
iterable $values
string $boolean
bool $not

Return Value

Builder

at line 1314
Builder whereBetweenColumns(Builder|Builder|Expression|string $column, array $values, string $boolean = 'and', bool $not = false)

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

Parameters

Builder|Builder|Expression|string $column
array $values
string $boolean
bool $not

Return Value

Builder

at line 1335
Builder orWhereBetween(Builder|Builder|Expression|string $column, iterable $values)

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

Parameters

Builder|Builder|Expression|string $column
iterable $values

Return Value

Builder

at line 1343
Builder orWhereBetweenColumns(Expression|string $column, array $values)

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

Parameters

Expression|string $column
array $values

Return Value

Builder

at line 1353
Builder whereNotBetween(Builder|Builder|Expression|string $column, iterable $values, string $boolean = 'and')

Add a "where not between" statement to the query.

Parameters

Builder|Builder|Expression|string $column
iterable $values
string $boolean

Return Value

Builder

at line 1361
Builder whereNotBetweenColumns(Expression|string $column, array $values, string $boolean = 'and')

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

Parameters

Expression|string $column
array $values
string $boolean

Return Value

Builder

at line 1371
Builder orWhereNotBetween(Builder|Builder|Expression|string $column, iterable $values)

Add an "or where not between" statement to the query.

Parameters

Builder|Builder|Expression|string $column
iterable $values

Return Value

Builder

at line 1379
Builder orWhereNotBetweenColumns(Expression|string $column, array $values)

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

Parameters

Expression|string $column
array $values

Return Value

Builder

at line 1389
Builder whereValueBetween(mixed $value, array $columns, string $boolean = 'and', bool $not = false)

Add a "where between columns" statement using a value to the query.

Parameters

mixed $value
array $columns
string $boolean
bool $not

Return Value

Builder

at line 1405
Builder orWhereValueBetween(mixed $value, array $columns)

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

Parameters

mixed $value
array $columns

Return Value

Builder

at line 1415
Builder whereValueNotBetween(mixed $value, array $columns, string $boolean = 'and')

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

Parameters

mixed $value
array $columns
string $boolean

Return Value

Builder

at line 1425
Builder orWhereValueNotBetween(mixed $value, array $columns)

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

Parameters

mixed $value
array $columns

Return Value

Builder

at line 1433
Builder orWhereNotNull(array|Expression|string $column)

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

Parameters

array|Expression|string $column

Return Value

Builder

at line 1441
Builder whereDate(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where date" statement to the query.

Parameters

Expression|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 1468
Builder orWhereDate(Expression|string $column, mixed $operator, mixed $value = null)

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

Parameters

Expression|string $column
mixed $operator
mixed $value

Return Value

Builder

at line 1482
Builder whereTime(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where time" statement to the query.

Parameters

Expression|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 1509
Builder orWhereTime(Expression|string $column, mixed $operator, mixed $value = null)

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

Parameters

Expression|string $column
mixed $operator
mixed $value

Return Value

Builder

at line 1523
Builder whereDay(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where day" statement to the query.

Parameters

Expression|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 1554
Builder orWhereDay(Expression|string $column, mixed $operator, mixed $value = null)

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

Parameters

Expression|string $column
mixed $operator
mixed $value

Return Value

Builder

at line 1568
Builder whereMonth(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where month" statement to the query.

Parameters

Expression|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 1599
Builder orWhereMonth(Expression|string $column, mixed $operator, mixed $value = null)

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

Parameters

Expression|string $column
mixed $operator
mixed $value

Return Value

Builder

at line 1613
Builder whereYear(Expression|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')

Add a "where year" statement to the query.

Parameters

Expression|string $column
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 1640
Builder orWhereYear(Expression|string $column, mixed $operator, mixed $value = null)

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

Parameters

Expression|string $column
mixed $operator
mixed $value

Return Value

Builder

at line 1654
protected Builder addDateBasedWhere(string $type, Expression|string $column, string $operator, mixed $value, string $boolean = 'and')

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

Parameters

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

Return Value

Builder

at line 1668
Builder whereNested(Closure $callback, string $boolean = 'and')

Add a nested "where" statement to the query.

Parameters

Closure $callback
string $boolean

Return Value

Builder

at line 1678
Builder forNestedWhere()

Create a new query instance for nested where condition.

Return Value

Builder

at line 1692
Builder 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

Builder

at line 1710
protected Builder whereSub(Expression|string $column, string $operator, Closure|Builder|Builder $callback, string $boolean)

Add a full sub-select to the query.

Parameters

Expression|string $column
string $operator
Closure|Builder|Builder $callback
string $boolean

Return Value

Builder

at line 1741
Builder whereExists(Closure|Builder|Builder $callback, string $boolean = 'and', bool $not = false)

Add an "exists" clause to the query.

Parameters

Closure|Builder|Builder $callback
string $boolean
bool $not

Return Value

Builder

at line 1762
Builder orWhereExists(Closure|Builder|Builder $callback, bool $not = false)

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

Parameters

Closure|Builder|Builder $callback
bool $not

Return Value

Builder

at line 1772
Builder whereNotExists(Closure|Builder|Builder $callback, string $boolean = 'and')

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

Parameters

Closure|Builder|Builder $callback
string $boolean

Return Value

Builder

at line 1782
Builder orWhereNotExists(Closure|Builder|Builder $callback)

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

Parameters

Closure|Builder|Builder $callback

Return Value

Builder

at line 1790
Builder 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

Builder

at line 1806
Builder 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

Builder

Exceptions

InvalidArgumentException

at line 1824
Builder orWhereRowValues(array $columns, string $operator, array $values)

Adds an or where condition using row values.

Parameters

array $columns
string $operator
array $values

Return Value

Builder

at line 1832
Builder 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

Builder

at line 1848
Builder orWhereJsonContains(string $column, mixed $value)

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

Parameters

string $column
mixed $value

Return Value

Builder

at line 1856
Builder 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

Builder

at line 1864
Builder orWhereJsonDoesntContain(string $column, mixed $value)

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

Parameters

string $column
mixed $value

Return Value

Builder

at line 1872
Builder whereJsonOverlaps(string $column, mixed $value, string $boolean = 'and', bool $not = false)

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

Parameters

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

Return Value

Builder

at line 1888
Builder orWhereJsonOverlaps(string $column, mixed $value)

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

Parameters

string $column
mixed $value

Return Value

Builder

at line 1896
Builder whereJsonDoesntOverlap(string $column, mixed $value, string $boolean = 'and')

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

Parameters

string $column
mixed $value
string $boolean

Return Value

Builder

at line 1904
Builder orWhereJsonDoesntOverlap(string $column, mixed $value)

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

Parameters

string $column
mixed $value

Return Value

Builder

at line 1912
Builder whereJsonContainsKey(string $column, string $boolean = 'and', bool $not = false)

Add a clause that determines if a JSON path exists to the query.

Parameters

string $column
string $boolean
bool $not

Return Value

Builder

at line 1924
Builder orWhereJsonContainsKey(string $column)

Add an "or" clause that determines if a JSON path exists to the query.

Parameters

string $column

Return Value

Builder

at line 1932
Builder whereJsonDoesntContainKey(string $column, string $boolean = 'and')

Add a clause that determines if a JSON path does not exist to the query.

Parameters

string $column
string $boolean

Return Value

Builder

at line 1940
Builder orWhereJsonDoesntContainKey(string $column)

Add an "or" clause that determines if a JSON path does not exist to the query.

Parameters

string $column

Return Value

Builder

at line 1948
Builder 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

Builder

at line 1977
Builder 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

Builder

at line 1991
Builder dynamicWhere(string $method, array $parameters)

Handles dynamic "where" clauses to the query.

Parameters

string $method
array $parameters

Return Value

Builder

at line 2033
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

at line 2046
Builder whereFullText(string|array $columns, string $value, array $options = [], string $boolean = 'and')

Add a "where fulltext" clause to the query.

Parameters

string|array $columns
string $value
array $options
string $boolean

Return Value

Builder

at line 2062
Builder orWhereFullText(string|array $columns, string $value, array $options = [])

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

Parameters

string|array $columns
string $value
array $options

Return Value

Builder

at line 2072
Builder whereAll(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where" clause to the query for multiple columns with "and" conditions between them.

Parameters

array $columns
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 2094
Builder orWhereAll(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query for multiple columns with "and" conditions between them.

Parameters

array $columns
mixed $operator
mixed $value

Return Value

Builder

at line 2104
Builder whereAny(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where" clause to the query for multiple columns with "or" conditions between them.

Parameters

array $columns
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 2126
Builder orWhereAny(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where" clause to the query for multiple columns with "or" conditions between them.

Parameters

array $columns
mixed $operator
mixed $value

Return Value

Builder

at line 2136
Builder whereNone(array $columns, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Add a "where not" clause to the query for multiple columns where none of the conditions should be true.

Parameters

array $columns
mixed $operator
mixed $value
string $boolean

Return Value

Builder

at line 2146
Builder orWhereNone(array $columns, mixed $operator = null, mixed $value = null)

Add an "or where not" clause to the query for multiple columns where none of the conditions should be true.

Parameters

array $columns
mixed $operator
mixed $value

Return Value

Builder

at line 2154
Builder groupBy(array|Expression|string ...$groups)

Add a "group by" clause to the query.

Parameters

array|Expression|string ...$groups

Return Value

Builder

at line 2169
Builder groupByRaw(string $sql, array $bindings = [])

Add a raw "groupBy" clause to the query.

Parameters

string $sql
array $bindings

Return Value

Builder

at line 2181
Builder having(Expression|Closure|string $column, DateTimeInterface|string|int|float|null $operator = null, Expression|DateTimeInterface|string|int|float|null $value = null, string $boolean = 'and')

Add a "having" clause to the query.

Parameters

Expression|Closure|string $column
DateTimeInterface|string|int|float|null $operator
Expression|DateTimeInterface|string|int|float|null $value
string $boolean

Return Value

Builder

at line 2233
Builder orHaving(Expression|Closure|string $column, DateTimeInterface|string|int|float|null $operator = null, Expression|DateTimeInterface|string|int|float|null $value = null)

Add an "or having" clause to the query.

Parameters

Expression|Closure|string $column
DateTimeInterface|string|int|float|null $operator
Expression|DateTimeInterface|string|int|float|null $value

Return Value

Builder

at line 2250
Builder havingNested(Closure $callback, string $boolean = 'and')

Add a nested "having" statement to the query.

Parameters

Closure $callback
string $boolean

Return Value

Builder

at line 2260
Builder addNestedHavingQuery(Builder $query, string $boolean = 'and')

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

Parameters

Builder $query
string $boolean

Return Value

Builder

at line 2276
Builder havingNull(array|string $columns, string $boolean = 'and', bool $not = false)

Add a "having null" clause to the query.

Parameters

array|string $columns
string $boolean
bool $not

Return Value

Builder

at line 2290
Builder orHavingNull(string $column)

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

Parameters

string $column

Return Value

Builder

at line 2298
Builder havingNotNull(array|string $columns, string $boolean = 'and')

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

Parameters

array|string $columns
string $boolean

Return Value

Builder

at line 2306
Builder orHavingNotNull(string $column)

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

Parameters

string $column

Return Value

Builder

at line 2314
Builder havingBetween(string $column, iterable $values, string $boolean = 'and', bool $not = false)

Add a "having between" clause to the query.

Parameters

string $column
iterable $values
string $boolean
bool $not

Return Value

Builder

at line 2332
Builder havingNotBetween(string $column, iterable $values, string $boolean = 'and')

Add a "having not between" clause to the query.

Parameters

string $column
iterable $values
string $boolean

Return Value

Builder

at line 2340
Builder orHavingBetween(string $column, iterable $values)

Add an "or having between" clause to the query.

Parameters

string $column
iterable $values

Return Value

Builder

at line 2348
Builder orHavingNotBetween(string $column, iterable $values)

Add an "or having not between" clause to the query.

Parameters

string $column
iterable $values

Return Value

Builder

at line 2358
protected array resolveDatePeriodBounds(DatePeriod $period)

Resolve the start and end dates from a DatePeriod.

Parameters

DatePeriod $period

Return Value

array

at line 2377
Builder 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

Builder

at line 2391
Builder orHavingRaw(string $sql, array $bindings = [])

Add a raw "or having" clause to the query.

Parameters

string $sql
array $bindings

Return Value

Builder

at line 2404
Builder orderBy(Closure|Builder|Builder|Expression|string $column, SortDirection|string $direction = SortDirection::Ascending)

Add an "order by" clause to the query.

Parameters

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

Return Value

Builder

Exceptions

InvalidArgumentException

at line 2437
Builder orderByDesc(Closure|Builder|Builder|Expression|string $column)

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

Parameters

Closure|Builder|Builder|Expression|string $column

Return Value

Builder

at line 2445
Builder latest(Closure|Builder|Expression|string $column = 'created_at')

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

Parameters

Closure|Builder|Expression|string $column

Return Value

Builder

at line 2453
Builder oldest(Closure|Builder|Expression|string $column = 'created_at')

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

Parameters

Closure|Builder|Expression|string $column

Return Value

Builder

at line 2463
Builder orderByVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector)

Add a vector-distance "order by" clause to the query.

Parameters

Expression|string $column
Collection|Arrayable|array|string $vector

Return Value

Builder

at line 2492
Builder inRandomOrder(string|int $seed = '')

Put the query's results in random order.

Parameters

string|int $seed

Return Value

Builder

at line 2500
Builder inOrderOf(Expression|string $column, Arrayable|array $values)

Add an order clause for a given sequence of values.

Parameters

Expression|string $column
Arrayable|array $values

Return Value

Builder

at line 2531
Builder orderByRaw(string $sql, mixed $bindings = [])

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

Parameters

string $sql
mixed $bindings

Return Value

Builder

at line 2545
Builder skip(int $value)

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

Parameters

int $value

Return Value

Builder

at line 2553
Builder offset(int|null $value)

Set the "offset" value of the query.

Parameters

int|null $value

Return Value

Builder

at line 2565
Builder take(int $value)

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

Parameters

int $value

Return Value

Builder

at line 2573
Builder limit(int|null $value)

Set the "limit" value of the query.

Parameters

int|null $value

Return Value

Builder

at line 2587
Builder groupLimit(int $value, string $column)

Add a "group limit" clause to the query.

Parameters

int $value
string $column

Return Value

Builder

at line 2599
Builder forPage(int $page, int $perPage = 15)

Set the limit and offset for a given page.

Parameters

int $page
int $perPage

Return Value

Builder

at line 2607
Builder 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

Builder

at line 2624
Builder forPageAfterId(int $perPage = 15, string|int|null $lastId = 0, string $column = 'id')

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

Parameters

int $perPage
string|int|null $lastId
string $column

Return Value

Builder

at line 2643
Builder reorder(Closure|Builder|Expression|string|null $column = null, SortDirection|string $direction = SortDirection::Ascending)

Remove all existing orders and optionally add a new order.

Parameters

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

Return Value

Builder

at line 2660
Builder reorderDesc(Closure|Builder|Expression|string|null $column)

Add descending "reorder" clause to the query.

Parameters

Closure|Builder|Expression|string|null $column

Return Value

Builder

at line 2668
protected array removeExistingOrdersFor(string $column)

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

Parameters

string $column

Return Value

array

at line 2681
Builder union(Closure|Builder|Builder $query, bool $all = false)

Add a "union" statement to the query.

Parameters

Closure|Builder|Builder $query
bool $all

Return Value

Builder

at line 2699
Builder unionAll(Closure|Builder|Builder $query)

Add a "union all" statement to the query.

Parameters

Closure|Builder|Builder $query

Return Value

Builder

at line 2707
Builder lock(string|bool $value = true)

Lock the selected rows in the table.

Parameters

string|bool $value

Return Value

Builder

at line 2718
Builder lockForUpdate()

Lock the selected rows in the table for updating.

Return Value

Builder

at line 2726
Builder sharedLock()

Share lock the selected rows in the table.

Return Value

Builder

at line 2736
Builder timeout(int|null $seconds)

Set a query execution timeout in seconds.

Parameters

int|null $seconds

Return Value

Builder

Exceptions

InvalidArgumentException

at line 2750
Builder beforeQuery(callable $callback)

Register a closure to be invoked before the query is executed.

Parameters

callable $callback

Return Value

Builder

at line 2760
void applyBeforeQueryCallbacks()

Invoke the "before query" modification callbacks.

Return Value

void

at line 2772
Builder afterQuery(Closure $callback)

Register a closure to be invoked after the query is executed.

Parameters

Closure $callback

Return Value

Builder

at line 2782
Collection applyAfterQueryCallbacks(Collection $result)

Invoke the "after query" modification callbacks.

Parameters

Collection $result

Return Value

Collection

at line 2794
string toSql()

Get the SQL representation of the query.

Return Value

string

at line 2804
string toRawSql()

Get the raw SQL representation of the query with embedded bindings.

Return Value

string

at line 2817
object|array|null find(int|string $id, Expression|array|string $columns = ['*'])

Execute a query for a single record by ID.

Parameters

int|string $id
Expression|array|string $columns

Return Value

object|array|null

at line 2831
mixed findOr(mixed $id, Closure|Expression|array|string $columns = ['*'], Closure|null $callback = null)

Execute a query for a single record by ID or call a callback.

Parameters

mixed $id
Closure|Expression|array|string $columns
Closure|null $callback

Return Value

mixed

at line 2849
mixed value(string $column)

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

Parameters

string $column

Return Value

mixed

at line 2859
mixed rawValue(string $expression, array $bindings = [])

Get a single expression value from the first result of a query.

Parameters

string $expression
array $bindings

Return Value

mixed

at line 2872
mixed soleValue(string $column)

Get a single column's value from the first result of a query if it's the sole matching record.

Parameters

string $column

Return Value

mixed

Exceptions

RecordsNotFoundException
MultipleRecordsFoundException

at line 2885
Collection get(Expression|array|string $columns = ['*'])

Execute the query as a "select" statement.

Parameters

Expression|array|string $columns

Return Value

Collection

at line 2899
protected array runSelect()

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

Return Value

array

at line 2912
protected Collection withoutGroupLimitKeys(Collection $items)

Remove the group limit keys from the results in the collection.

Parameters

Collection $items

Return Value

Collection

at line 2937
LengthAwarePaginator paginate(int|Closure $perPage = 15, Expression|array|string $columns = ['*'], string $pageName = 'page', int|null $page = null, Closure|int|null $total = null)

Paginate the given query into a simple paginator.

Parameters

int|Closure $perPage
Expression|array|string $columns
string $pageName
int|null $page
Closure|int|null $total

Return Value

LengthAwarePaginator

at line 2965
Paginator simplePaginate(int $perPage = 15, Expression|array|string $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
Expression|array|string $columns
string $pageName
int|null $page

Return Value

Paginator

at line 2988
CursorPaginator cursorPaginate(int|null $perPage = 15, Expression|array|string $columns = ['*'], string $cursorName = 'cursor', Cursor|string|null $cursor = null)

Get a paginator only supporting simple next and previous links.

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

Parameters

int|null $perPage
Expression|array|string $columns
string $cursorName
Cursor|string|null $cursor

Return Value

CursorPaginator

at line 3000
protected Collection ensureOrderForCursorPagination(bool $shouldReverse = false)

Ensure the proper order by required for cursor pagination.

Parameters

bool $shouldReverse

Return Value

Collection

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

Get the count of the total records for the paginator.

Parameters

array $columns

Return Value

int

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

Run a pagination count query.

Parameters

array $columns

Return Value

array

at line 3084
protected Builder cloneForPaginationCount()

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

Return Value

Builder

at line 3096
protected array withoutSelectAliases(array $columns)

Remove the column aliases since they will break count queries.

Parameters

array $columns

Return Value

array

at line 3110
LazyCollection cursor()

Get a lazy collection for the given query.

Return Value

LazyCollection

at line 3133
protected void enforceOrderBy()

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

Return Value

void

Exceptions

RuntimeException

at line 3145
Collection pluck(Expression|string $column, string|null $key = null)

Get a collection instance containing the values of a given column.

Parameters

Expression|string $column
string|null $key

Return Value

Collection

at line 3181
protected string|null stripTableForPluck(Expression|string|null $column)

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

Parameters

Expression|string|null $column

Return Value

string|null

at line 3199
protected Collection pluckFromObjectColumn(array $queryResult, string $column, string|null $key)

Retrieve column values from rows represented as objects.

Parameters

array $queryResult
string $column
string|null $key

Return Value

Collection

at line 3219
protected Collection pluckFromArrayColumn(array $queryResult, string $column, string|null $key)

Retrieve column values from rows represented as arrays.

Parameters

array $queryResult
string $column
string|null $key

Return Value

Collection

at line 3239
string implode(string $column, string $glue = '')

Concatenate values of a given column as a string.

Parameters

string $column
string $glue

Return Value

string

at line 3247
bool exists()

Determine if any rows exist for the current query.

Return Value

bool

at line 3273
bool doesntExist()

Determine if no rows exist for the current query.

Return Value

bool

at line 3281
mixed existsOr(Closure $callback)

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

Parameters

Closure $callback

Return Value

mixed

at line 3289
mixed doesntExistOr(Closure $callback)

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

Parameters

Closure $callback

Return Value

mixed

at line 3299
int count(Expression|string $columns = '*')

Retrieve the "count" result of the query.

Parameters

Expression|string $columns

Return Value

int

at line 3307
mixed min(Expression|string $column)

Retrieve the minimum value of a given column.

Parameters

Expression|string $column

Return Value

mixed

at line 3315
mixed max(Expression|string $column)

Retrieve the maximum value of a given column.

Parameters

Expression|string $column

Return Value

mixed

at line 3323
mixed sum(Expression|string $column)

Retrieve the sum of the values of a given column.

Parameters

Expression|string $column

Return Value

mixed

at line 3333
mixed avg(Expression|string $column)

Retrieve the average of the values of a given column.

Parameters

Expression|string $column

Return Value

mixed

at line 3341
mixed average(Expression|string $column)

Alias for the "avg" method.

Parameters

Expression|string $column

Return Value

mixed

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

Execute an aggregate function on the database.

Parameters

string $function
array $columns

Return Value

mixed

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

Execute a numeric aggregate function on the database.

Parameters

string $function
array $columns

Return Value

float|int

at line 3394
protected Builder setAggregate(string $function, array $columns)

Set the aggregate property without running the query.

Parameters

string $function
array $columns

Return Value

Builder

at line 3418
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

at line 3436
bool insert(array $values)

Insert new records into the database.

Parameters

array $values

Return Value

bool

at line 3476
int insertOrIgnore(array $values)

Insert new records into the database while ignoring errors.

Parameters

array $values

Return Value

int

at line 3507
Collection insertOrIgnoreReturning(array $values, array $returning = ['*'], array|string|null $uniqueBy = null)

Insert records while ignoring conflicts and return the inserted rows.

Parameters

array $values
array $returning
array|string|null $uniqueBy

Return Value

Collection

at line 3555
int|string 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|string

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

Insert new records into the table using a subquery.

Parameters

array $columns
Closure|Builder|Builder|string $query

Return Value

int

at line 3588
int insertOrIgnoreUsing(array $columns, Closure|Builder|Builder|string $query)

Insert new records into the table using a subquery while ignoring errors.

Parameters

array $columns
Closure|Builder|Builder|string $query

Return Value

int

at line 3605
int update(array $values)

Update records in the database.

Parameters

array $values

Return Value

int

at line 3635
int updateFrom(array $values)

Update records in a PostgreSQL database using the update from syntax.

Parameters

array $values

Return Value

int

at line 3655
bool updateOrInsert(array $attributes, array|callable $values = [])

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

Parameters

array $attributes
array|callable $values

Return Value

bool

at line 3677
int upsert(array $values, array|string $uniqueBy, array|null $update = null)

Insert new records or update the existing ones.

Parameters

array $values
array|string $uniqueBy
array|null $update

Return Value

int

at line 3722
int increment(string $column, mixed $amount = 1, array $extra = [])

Increment a column's value by a given amount.

Parameters

string $column
mixed $amount
array $extra

Return Value

int

Exceptions

InvalidArgumentException

at line 3740
int incrementEach(array $columns, array $extra = [])

Increment the given column's values by the given amounts.

Parameters

array $columns
array $extra

Return Value

int

Exceptions

InvalidArgumentException

at line 3765
int decrement(string $column, mixed $amount = 1, array $extra = [])

Decrement a column's value by a given amount.

Parameters

string $column
mixed $amount
array $extra

Return Value

int

Exceptions

InvalidArgumentException

at line 3783
int decrementEach(array $columns, array $extra = [])

Decrement the given column's values by the given amounts.

Parameters

array $columns
array $extra

Return Value

int

Exceptions

InvalidArgumentException

at line 3795
int delete(mixed $id = null)

Delete records from the database.

Parameters

mixed $id

Return Value

int

at line 3817
void truncate()

Run a "truncate" statement on the table.

Return Value

void

at line 3829
Builder newQuery()

Get a new instance of the query builder.

Return Value

Builder

at line 3837
protected Builder forSubQuery()

Create a new query instance for a sub-query.

Return Value

Builder

at line 3847
array getColumns()

Get all of the query builder's columns in a text-only array with all expressions evaluated.

Return Value

array

at line 3857
Expression raw(mixed $value)

Create a raw database expression.

Parameters

mixed $value

Return Value

Expression

at line 3865
protected Collection getUnionBuilders()

Get the query builder instances that are used in the union of the query.

Return Value

Collection

at line 3875
int|null getLimit()

Get the "limit" value for the query or null if it's not set.

Return Value

int|null

at line 3885
int|null getOffset()

Get the "offset" value for the query or null if it's not set.

Return Value

int|null

at line 3897
array getBindings()

Get the current query value bindings in a flattened array.

Return Value

array

at line 3917
array getRawBindings()

Get the raw array of bindings.

Return Value

array

at line 3930
Builder setBindings(array $bindings, string $type = 'where')

Set the bindings on the query builder.

Parameters

array $bindings
string $type

Return Value

Builder

Exceptions

InvalidArgumentException

at line 3948
Builder addBinding(mixed $value, string $type = 'where')

Add a binding to the query.

Parameters

mixed $value
string $type

Return Value

Builder

Exceptions

InvalidArgumentException

at line 3969
mixed castBinding(mixed $value)

Cast the given binding value.

Parameters

mixed $value

Return Value

mixed

at line 3981
Builder mergeBindings(Builder $query)

Merge an array of bindings into our bindings.

Parameters

Builder $query

Return Value

Builder

at line 3994
array cleanBindings(array $bindings)

Remove all of the expressions from a list of bindings.

Parameters

array $bindings

Return Value

array

at line 4008
protected mixed flattenValue(mixed $value)

Get a scalar type value from an unknown type of input.

Parameters

mixed $value

Return Value

mixed

at line 4016
protected string defaultKeyName()

Get the default key name of the table.

Return Value

string

at line 4024
ConnectionInterface getConnection()

Get the database connection instance.

Return Value

ConnectionInterface

at line 4032
protected void ensureConnectionSupportsVectors()

Ensure the database connection supports vector queries.

Return Value

void

at line 4042
Processor getProcessor()

Get the database query processor instance.

Return Value

Processor

at line 4050
Grammar getGrammar()

Get the query grammar instance.

Return Value

Grammar

at line 4058
Builder useWritePdo()

Use the "write" PDO connection when executing the query.

Return Value

Builder

at line 4068
Builder fetchUsing(mixed ...$fetchUsing)

Set the PDO fetch mode arguments for the query.

Parameters

mixed ...$fetchUsing

Return Value

Builder

at line 4078
protected bool isQueryable(mixed $value)

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

Parameters

mixed $value

Return Value

bool

at line 4089
Builder clone()

Clone the query.

Return Value

Builder

at line 4097
Builder cloneWithout(array $properties)

Clone the query without the given properties.

Parameters

array $properties

Return Value

Builder

at line 4109
Builder cloneWithoutBindings(array $except)

Clone the query without the given bindings.

Parameters

array $except

Return Value

Builder

at line 4121
Builder dump(mixed ...$args)

Dump the current SQL and bindings.

Parameters

mixed ...$args

Return Value

Builder

at line 4135
Builder dumpRawSql()

Dump the raw current SQL with embedded bindings.

Return Value

Builder

at line 4145
never dd()

Die and dump the current SQL and bindings.

Return Value

never

at line 4153
never ddRawSql()

Die and dump the current SQL with embedded bindings.

Return Value

never

at line 4161
static void flushState()

Flush all static state.

Return Value

void