JoinLateralClause
class JoinLateralClause extends JoinClause
Traits
Properties
| static protected array | $macros | The registered string macros. |
from Macroable |
| ConnectionInterface | $connection | The database connection instance. |
from Builder |
| Grammar | $grammar | The database query grammar instance. |
from Builder |
| Processor | $processor | The database query post processor instance. |
from Builder |
| TBindingType, list<mixed>> | $bindings | The current query value bindings. |
from Builder |
| null|Expression|string>} | $aggregate | An aggregate function and column to be run. |
from Builder |
| null|Expression|string> | $columns | The columns that should be returned. |
from Builder |
| bool|array | $distinct | Indicates if the query returns distinct results. |
from Builder |
| Expression|string|null | $from | The table which the query is targeting. |
from Builder |
| protected string|null | $fromAlias | The logical alias explicitly supplied for the query source. |
from Builder |
| IndexHint|null | $indexHint | The index hint for the query. |
from Builder |
| array|null | $joins | The table joins for the query. |
from Builder |
| array | $wheres | The where constraints for the query. |
from Builder |
| protected bool | $hasSelectKeysetConditions | Whether paging predicates belong to this SELECT or its union result. |
from Builder |
| protected bool | $hasUnionKeysetConditions | from Builder | |
| protected bool | $hasKeysetExpressions | Whether a cursor compares a selected expression. |
from Builder |
| protected array | $removedKeysetOrders | The SELECT orders removed by paging, in removal order. |
from Builder |
| array|null | $groups | The groupings for the query. |
from Builder |
| array|null | $havings | The having constraints for the query. |
from Builder |
| array|null | $orders | The orderings for the query. |
from Builder |
| int|null | $limit | The maximum number of records to return. |
from Builder |
| array|null | $groupLimit | The maximum number of records to return per group. |
from Builder |
| int|null | $offset | The number of records to skip. |
from Builder |
| array|null | $unions | The query union statements. |
from Builder |
| int|null | $unionLimit | The maximum number of union records to return. |
from Builder |
| int|null | $unionOffset | The number of union records to skip. |
from Builder |
| array|null | $unionOrders | The orderings for the union query. |
from Builder |
| string|bool|null | $lock | Indicates whether row locking is being used. |
from Builder |
| bool | $skipLocked | Whether to skip rows locked by another transaction. |
from Builder |
| int|null | $timeout | The query execution timeout in seconds. |
from Builder |
| array | $beforeQueryCallbacks | The callbacks that should be invoked before the query is executed. |
from Builder |
| protected TValue>|void> | $afterQueryCallbacks | The callbacks that should be invoked after retrieving data from the database. |
from Builder |
| string[] | $operators | All of the available clause operators. |
from Builder |
| string[] | $bitwiseOperators | All of the available bitwise operators. |
from Builder |
| bool | $useWritePdo | Whether to use the write connection for the select. |
from Builder |
| array | $fetchUsing | The PDO fetch mode arguments for the query. |
from Builder |
| protected array|null | $fetchUsingOverride | The scoped PDO fetch mode arguments for the current query, or null when no override is active. |
from Builder |
| string | $type | The type of join being performed. |
from JoinClause |
| Expression|string | $table | The table the join clause is joining to. |
from JoinClause |
| protected ConnectionInterface | $parentConnection | The connection of the parent query builder. |
from JoinClause |
| protected Grammar | $parentGrammar | The grammar of the parent query builder. |
from JoinClause |
| protected Processor | $parentProcessor | The processor of the parent query builder. |
from JoinClause |
| protected string | $parentClass | The class name of the parent query builder. |
from JoinClause |
Methods
Add a where clause to determine if a "date" column is in the past to the query.
Add a where clause to determine if a "date" column is in the past or now to the query.
Add an "or where" clause to determine if a "date" column is in the past to the query.
Add a where clause to determine if a "date" column is in the past or now to the query.
Add a where clause to determine if a "date" column is in the future to the query.
Add a where clause to determine if a "date" column is in the future or now to the query.
Add an "or where" clause to determine if a "date" column is in the future to the query.
Add an "or where" clause to determine if a "date" column is in the future or now to the query.
Add an "where" clause to determine if a "date" column is in the past or future.
Add a "where date" clause to determine if a "date" column is today to the query.
Add a "where date" clause to determine if a "date" column is before today.
Add a "where date" clause to determine if a "date" column is today or before to the query.
Add a "where date" clause to determine if a "date" column is after today.
Add a "where date" clause to determine if a "date" column is today or after to the query.
Add an "or where date" clause to determine if a "date" column is today to the query.
Add an "or where date" clause to determine if a "date" column is before today.
Add an "or where date" clause to determine if a "date" column is today or before to the query.
Add an "or where date" clause to determine if a "date" column is after today.
Add an "or where date" clause to determine if a "date" column is today or after to the query.
Add a "where date" clause to determine if a "date" column is today or after to the query.
Apply the callback if the given "value" is (or resolves to) truthy.
Apply the callback if the given "value" is (or resolves to) falsy.
Run a map over each item while chunking.
Execute a callback over each item while chunking.
Chunk the results of a query by comparing IDs.
Chunk the results of a query by comparing IDs in descending order.
Chunk the results of a query by comparing IDs in a given order.
Execute a callback over each item while chunking by ID.
Query lazily, by chunks of the given size.
Query lazily, by chunking the results of a query by comparing IDs.
Query lazily, by chunking the results of a query by comparing IDs in descending order.
Query lazily, by chunking the results of a query by comparing IDs in a given order.
Get the ID of the last result of a chunk to continue paging from.
Prepare the last chunk ID for comparison with the paging column.
Get the model attribute behind a qualified paging column.
Execute the query and get the first result.
Execute the query and get the first result or throw an exception.
Execute the query and get the first result if it's the sole matching record.
Paginate the given query using a cursor paginator.
Get the builder that owns cursor binding and page execution.
Get a cursor parameter for database binding.
Get the original column name of the given column, without any aliasing.
Determine whether the resolved cursor column is a declared SQL expression.
Create a new length-aware paginator instance.
Create a new simple paginator instance.
Create a new cursor paginator instance.
Pass the query to a given callback and then return it.
Pass the query to a given callback and return the result.
Forward a method call to the given object.
Forward a method call to the given object, returning $this if the forwarded call returned itself.
Throw a bad method call exception for the given method.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Create a new join clause instance.
Add a subselect expression to the query.
Add a new "raw" select expression to the query.
Makes "from" fetch from a subquery.
Prepend the database name if the given query is on another database.
Get the wildcard selection for the query's primary source.
Add a vector-similarity selection to the query.
Set the table which the query is targeting.
Get the alias or table name that qualifies the query's source columns.
Add a "join" clause to the query.
Add a "join where" clause to the query.
Add a "subquery join" clause to the query.
Add a "lateral join" clause to the query.
Add a lateral left join to the query.
Add a left join to the query.
Add a "join where" clause to the query.
Add a subquery left join to the query.
Add a right join to the query.
Add a "right join where" clause to the query.
Add a subquery right join to the query.
Add a "cross join" clause to the query.
Add a subquery cross join to the query.
Add a straight join to the query.
Add a straight join where clause to the query.
Add a subquery straight join to the query.
Get a new "join" clause.
Get a new "join lateral" clause.
Merge an array of "where" clauses and bindings.
Add a basic "where" clause to the query.
Add an array of "where" clauses to the query.
Prepare the value and operator for a where clause.
Determine if the given operator and value combination is legal.
Determine if the operator is a bitwise operator.
Add an "or where" clause to the query.
Add a basic "where not" clause to the query.
Add an "or where not" clause to the query.
Add a "where" clause comparing two columns to the query.
Add an "or where" clause comparing two columns to the query.
Add a vector similarity clause to the query, filtering by minimum similarity and ordering by similarity.
Add a vector distance "where" clause to the query.
Add a vector distance "or where" clause to the query.
Add a raw "where" clause to the query.
Add a raw "or where" clause to the query.
Add a "where binary" clause to the query.
Add an "or where binary" clause to the query.
Add a "where not binary" clause to the query.
Add an "or where not binary" clause to the query.
Add a "where like" clause to the query.
Add an "or where like" clause to the query.
Add a "where not like" clause to the query.
Add an "or where not like" clause to the query.
Add a null-safe equality clause to the query.
Add an "or" null-safe equality clause to the query.
Add a "where in" clause to the query.
Add a "where not in" clause to the query.
Add an "or where not in" clause to the query.
Add a "where in raw" clause for integer values to the query.
Add an "or where in raw" clause for integer values to the query.
Add a "where not in raw" clause for integer values to the query.
Add an "or where not in raw" clause for integer values to the query.
Add a "where null" clause to the query.
Add a "where not null" clause to the query.
Add a "where between" statement to the query.
Add a "where between" statement using columns to the query.
Add an "or where between" statement to the query.
Add an "or where between" statement using columns to the query.
Add a "where not between" statement to the query.
Add a "where not between" statement using columns to the query.
Add an "or where not between" statement to the query.
Add an "or where not between" statement using columns to the query.
Add a "where between columns" statement using a value to the query.
Add an "or where between columns" statement using a value to the query.
Add a "where not between columns" statement using a value to the query.
Add an "or where not between columns" statement using a value to the query.
Add a "where date" statement to the query.
Add an "or where date" statement to the query.
Add a "where time" statement to the query.
Add an "or where time" statement to the query.
Add a "where day" statement to the query.
Add an "or where day" statement to the query.
Add a "where month" statement to the query.
Add an "or where month" statement to the query.
Add a "where year" statement to the query.
Add an "or where year" statement to the query.
Add a date based (year, month, day, time) statement to the query.
Add a nested "where" statement to the query.
Add another query builder as a nested where to the query builder.
Add a full sub-select to the query.
Add an "exists" clause to the query.
Add an "or where exists" clause to the query.
Add a "where not exists" clause to the query.
Add an "or where not exists" clause to the query.
Add an "exists" clause to the query.
Add a where condition using row values.
Adds an or where condition using row values.
Add a "where JSON contains" clause to the query.
Add an "or where JSON contains" clause to the query.
Add a "where JSON not contains" clause to the query.
Add an "or where JSON not contains" clause to the query.
Add a "where JSON overlaps" clause to the query.
Add an "or where JSON overlaps" clause to the query.
Add a "where JSON not overlap" clause to the query.
Add an "or where JSON not overlap" clause to the query.
Add a clause that determines if a JSON path exists to the query.
Add an "or" clause that determines if a JSON path exists to the query.
Add a clause that determines if a JSON path does not exist to the query.
Add an "or" clause that determines if a JSON path does not exist to the query.
Add a "where JSON length" clause to the query.
Add an "or where JSON length" clause to the query.
Handles dynamic "where" clauses to the query.
Add a single dynamic "where" clause statement to the query.
Add a "where fulltext" clause to the query.
Add an "or where fulltext" clause to the query.
Add a "where" clause to the query for multiple columns with "and" conditions between them.
Add an "or where" clause to the query for multiple columns with "and" conditions between them.
Add a "where" clause to the query for multiple columns with "or" conditions between them.
Add an "or where" clause to the query for multiple columns with "or" conditions between them.
Add a "where not" clause to the query for multiple columns where none of the conditions should be true.
Add an "or where not" clause to the query for multiple columns where none of the conditions should be true.
Add a raw "groupBy" clause to the query.
Add a "having" clause to the query.
Add an "or having" clause to the query.
Add a nested "having" statement to the query.
Add another query builder as a nested having to the query builder.
Add a "having null" clause to the query.
Add a "having not null" clause to the query.
Add an "or having not null" clause to the query.
Add a "having between" clause to the query.
Add a "having not between" clause to the query.
Add an "or having between" clause to the query.
Add an "or having not between" clause to the query.
Add a raw "having" clause to the query.
Add a raw "or having" clause to the query.
Add an "order by" clause to the query.
Add a descending "order by" clause to the query.
Add an "order by" clause for a timestamp to the query.
Add an "order by" clause for a timestamp to the query.
Add a vector-distance "order by" clause to the query.
Add an "order by" clause to order results by a given sequence of values.
Add a raw "order by" clause to the query.
Attach bindings to the last column order so removing it also removes its parameters.
Add a "group limit" clause to the query.
Constrain the query to the previous "page" of results before a given ID.
Constrain the query to the next "page" of results after a given ID.
Remove all existing orders and optionally add a new order.
Add descending "reorder" clause to the query.
Get an array with all orders with a given column removed.
Remove matching orders and only their owned parameters.
Skip rows locked by another transaction when supported by the server.
Register a closure to be invoked before the query is executed.
Execute a query for a single record by ID.
Execute a query for a single record by ID or call a callback.
Get a single expression value from the first result of a query.
Get a single column's value from the first result of a query if it's the sole matching record.
Execute the given callback without custom fetch mode arguments.
Remove the group limit keys from the results in the collection.
Paginate the given query into a simple paginator.
Get a paginator only supporting simple next and previous links.
Get a paginator only supporting simple next and previous links.
Ensure the proper order by required for cursor pagination.
Record the paging predicate and the bindings it owns.
Retain membership ordering before cursor traversal reverses it.
Restore the operation's ordering when a global scope replaces its paging orders.
Sort an ID iteration by its paging column before any other order.
Reject limited ID iteration when another order would choose different rows.
Add cursor comparisons resolved by the calling query or Eloquent builder.
Keep existing "or" conditions from bypassing the page boundary.
Add the ordered comparisons for a compound cursor.
Determine whether paging must filter the result of this SELECT.
Prepare a SELECT without changing the logical query retained by its caller.
Collect paging constraints without rewriting nested groups shared with another query.
Normalize only framework-owned comparison columns to selected output names.
Get the source column and output name of a selected entry.
Get the selected output name for a paging column.
Find the selected output that represents a paging source column.
Compare source references without conflating two explicitly qualified columns.
Keep an ID page ordered by its WHERE source when an output alias shadows it.
Collect the output columns used by a compound paging constraint.
Map union output columns only when their correspondence can be proven.
Determine whether the projection selects only the source's wildcard columns.
Apply inherited paging outside member bounds and through unbounded nested unions.
Append comparisons using the member's source columns or isolated output names.
Rebind only owned comparisons, preserving user predicates and shared nested groups.
Restore membership ordering from live entries and the orders paging removed.
Move row selection inside a derived table while retaining the page outside it.
Get the count of the total records for the paginator.
Clone the existing query instance for usage in a pagination subquery.
Remove the column aliases since they will break count queries.
Get a collection instance containing the values of a given column.
Get column values and the returned field name for Eloquent attribute conversion.
Strip off the table name or alias from a column identifier.
Retrieve column values from rows represented as objects.
Retrieve column values from rows represented as arrays.
Concatenate values of a given column as a string.
Execute an aggregate function on the database.
Execute a numeric aggregate function on the database.
Set the aggregate property without running the query.
Determine whether ordering selects rows retained by the aggregate's inner query.
Execute the given callback while selecting the given columns.
Insert new records into the database while ignoring errors.
Insert records while ignoring conflicts and return the inserted rows.
Insert a new record and get the value of the primary key.
Insert new records into the table using a subquery.
Insert new records into the table using a subquery while ignoring errors.
Update records in a PostgreSQL database using the update from syntax.
Insert or update a record matching the attributes, and fill it with values.
Insert new records or update the existing ones.
Increment a column's value by a given amount.
Increment the given column's values by the given amounts.
Decrement a column's value by a given amount.
Decrement the given column's values by the given amounts.
Get all of the query builder's columns in a text-only array with all expressions evaluated.
Get the query builder instances that are used in the union of the query.
Get the binding groups in the order used by this select statement.
Set the bindings on the query builder.
Remove all of the expressions from a list of bindings.
Get a scalar type value from an unknown type of input.
Ensure the database connection supports vector queries.
Set the PDO fetch mode arguments for the query.
Determine if the value is a query builder instance or a Closure.
Clear query properties while retaining defaults required by non-nullable types.
Clone the query without the given bindings.
Add an "on" clause to the join.
Add an "or on" clause to the join.
Details
in
BuildsWhereDateClauses at line 17
BuildsWhereDateClauses
wherePast(array|string $columns)
Add a where clause to determine if a "date" column is in the past to the query.
in
BuildsWhereDateClauses at line 27
BuildsWhereDateClauses
whereNowOrPast(array|string $columns)
Add a where clause to determine if a "date" column is in the past or now to the query.
in
BuildsWhereDateClauses at line 37
BuildsWhereDateClauses
orWherePast(array|string $columns)
Add an "or where" clause to determine if a "date" column is in the past to the query.
in
BuildsWhereDateClauses at line 47
BuildsWhereDateClauses
orWhereNowOrPast(array|string $columns)
Add a where clause to determine if a "date" column is in the past or now to the query.
in
BuildsWhereDateClauses at line 57
BuildsWhereDateClauses
whereFuture(array|string $columns)
Add a where clause to determine if a "date" column is in the future to the query.
in
BuildsWhereDateClauses at line 67
BuildsWhereDateClauses
whereNowOrFuture(array|string $columns)
Add a where clause to determine if a "date" column is in the future or now to the query.
in
BuildsWhereDateClauses at line 77
BuildsWhereDateClauses
orWhereFuture(array|string $columns)
Add an "or where" clause to determine if a "date" column is in the future to the query.
in
BuildsWhereDateClauses at line 87
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.
in
BuildsWhereDateClauses at line 97
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.
in
BuildsWhereDateClauses at line 116
BuildsWhereDateClauses
whereToday(array|string $columns, string $boolean = 'and')
Add a "where date" clause to determine if a "date" column is today to the query.
in
BuildsWhereDateClauses at line 126
BuildsWhereDateClauses
whereBeforeToday(array|string $columns)
Add a "where date" clause to determine if a "date" column is before today.
in
BuildsWhereDateClauses at line 136
BuildsWhereDateClauses
whereTodayOrBefore(array|string $columns)
Add a "where date" clause to determine if a "date" column is today or before to the query.
in
BuildsWhereDateClauses at line 146
BuildsWhereDateClauses
whereAfterToday(array|string $columns)
Add a "where date" clause to determine if a "date" column is after today.
in
BuildsWhereDateClauses at line 156
BuildsWhereDateClauses
whereTodayOrAfter(array|string $columns)
Add a "where date" clause to determine if a "date" column is today or after to the query.
in
BuildsWhereDateClauses at line 166
BuildsWhereDateClauses
orWhereToday(array|string $columns)
Add an "or where date" clause to determine if a "date" column is today to the query.
in
BuildsWhereDateClauses at line 176
BuildsWhereDateClauses
orWhereBeforeToday(array|string $columns)
Add an "or where date" clause to determine if a "date" column is before today.
in
BuildsWhereDateClauses at line 186
BuildsWhereDateClauses
orWhereTodayOrBefore(array|string $columns)
Add an "or where date" clause to determine if a "date" column is today or before to the query.
in
BuildsWhereDateClauses at line 196
BuildsWhereDateClauses
orWhereAfterToday(array|string $columns)
Add an "or where date" clause to determine if a "date" column is after today.
in
BuildsWhereDateClauses at line 206
BuildsWhereDateClauses
orWhereTodayOrAfter(array|string $columns)
Add an "or where date" clause to determine if a "date" column is today or after to the query.
in
BuildsWhereDateClauses at line 216
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.
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.
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.
in
BuildsQueries at line 45
bool
chunk(int $count, callable $callback)
Chunk the results of the query.
in
BuildsQueries at line 101
Collection
chunkMap(callable $callback, int $count = 1000)
Run a map over each item while chunking.
in
BuildsQueries at line 119
bool
each(callable $callback, int $count = 1000)
Execute a callback over each item while chunking.
in
BuildsQueries at line 137
bool
chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Chunk the results of a query by comparing IDs.
in
BuildsQueries at line 147
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.
in
BuildsQueries at line 157
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.
in
BuildsQueries at line 230
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.
in
BuildsQueries at line 248
LazyCollection
lazy(int $chunkSize = 1000)
Query lazily, by chunks of the given size.
in
BuildsQueries at line 301
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.
in
BuildsQueries at line 311
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.
in
BuildsQueries at line 324
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.
in
BuildsQueries at line 392
protected mixed
getLastIdFromChunk(mixed $result, string $alias)
Get the ID of the last result of a chunk to continue paging from.
in
BuildsQueries at line 407
protected mixed
getNextPageIdFromChunk(mixed $result, string $column, string $alias)
Prepare the last chunk ID for comparison with the paging column.
in
BuildsQueries at line 425
protected string
getPagingAttribute(Model $model, string $column)
Get the model attribute behind a qualified paging column.
in
BuildsQueries at line 447
null|TValue
first(array|string $columns = ['*'])
Execute the query and get the first result.
in
BuildsQueries at line 459
TValue
firstOrFail(array|string $columns = ['*'], string|null $message = null)
Execute the query and get the first result or throw an exception.
in
BuildsQueries at line 479
TValue
sole(array|string $columns = ['*'])
Execute the query and get the first result if it's the sole matching record.
in
BuildsQueries at line 499
protected CursorPaginator
paginateUsingCursor(int $perPage, array|string $columns = ['*'], string $cursorName = 'cursor', Cursor|string|null $cursor = null)
Paginate the given query using a cursor paginator.
in
BuildsQueries at line 561
protected BuildsQueries
getBuilderForCursorPage()
Get the builder that owns cursor binding and page execution.
in
BuildsQueries at line 569
protected mixed
getCursorParameterBinding(Cursor $cursor, string $parameter)
Get a cursor parameter for database binding.
in
BuildsQueries at line 579
protected string
getOriginalColumnNameForCursorPagination(Builder|Builder $builder, string $parameter)
Get the original column name of the given column, without any aliasing.
in
BuildsQueries at line 604
protected bool
isCursorExpression(Builder $query, string $parameter, string $original)
Determine whether the resolved cursor column is a declared SQL expression.
in
BuildsQueries at line 629
protected LengthAwarePaginator
paginator(Collection $items, int $total, int $perPage, int $currentPage, array $options)
Create a new length-aware paginator instance.
in
BuildsQueries at line 639
protected Paginator
simplePaginator(Collection $items, int $perPage, int $currentPage, array $options)
Create a new simple paginator instance.
in
BuildsQueries at line 649
protected CursorPaginator
cursorPaginator(Collection $items, int $perPage, Cursor|null $cursor, array $options)
Create a new cursor paginator instance.
in
BuildsQueries at line 662
BuildsQueries
tap(callable $callback)
Pass the query to a given callback and then return it.
in
BuildsQueries at line 677
TReturn is null|TReturn)
pipe(callable $callback)
Pass the query to a given callback and return the result.
in
ExplainsQueries at line 17
Collection
explain()
Explain the query.
in
ForwardsCalls at line 22
protected mixed
forwardCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object.
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.
in
ForwardsCalls at line 66
static protected never
throwBadMethodCallException(string $method)
Throw a bad method call exception for the given method.
in
Macroable at line 30
static void
macro(string $name, callable|object $macro)
Register a custom macro.
Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.
in
Macroable at line 44
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.
in
Macroable at line 61
static bool
hasMacro(string $name)
Check if macro is registered.
in
Macroable at line 72
static void
flushMacros()
Flush the existing macros.
Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.
in
Macroable at line 83
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
in
Macroable at line 108
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
in
JoinClause at line 49
__construct(Builder $parentQuery, string $type, Expression|string $table)
Create a new join clause instance.
in
Builder at line 322
Builder
selectSub(Closure|Builder|Builder|Relation|string $query, string $as)
Add a subselect expression to the query.
in
Builder at line 337
Builder
selectExpression(Expression|string $expression, string $as)
Add a select expression to the query.
in
Builder at line 349
Builder
selectRaw(string $expression, array $bindings = [])
Add a new "raw" select expression to the query.
in
Builder at line 368
Builder
fromSub(Closure|Builder|Builder|Relation|string $query, string $as)
Makes "from" fetch from a subquery.
in
Builder at line 384
Builder
fromRaw(Expression|string $expression, mixed $bindings = [])
Add a raw "from" clause to the query.
in
Builder at line 402
protected array
createSub(Closure|Builder|Builder|Relation|string $query)
Creates a subquery and parse it.
in
Builder at line 421
protected array
parseSub(mixed $query)
Parse the subquery into SQL and bindings.
in
Builder at line 449
protected Builder
prependDatabaseNameIfCrossDatabaseQuery(Builder $query)
Prepend the database name if the given query is on another database.
in
Builder at line 498
string
getDefaultSelectColumn()
Get the wildcard selection for the query's primary source.
in
Builder at line 519
Builder
selectVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector, string|null $as = null)
Add a vector-similarity selection to the query.
in
Builder at line 571
Builder
from(Closure|Builder|Builder|Relation|Expression|string $table, string|null $as = null)
Set the table which the query is targeting.
in
Builder at line 593
string|null
getFromAlias()
Get the alias or table name that qualifies the query's source columns.
Raw sources without an explicit alias return null; raw SQL is not parsed.
in
Builder at line 627
Builder
ignoreIndex(string $index)
Add an index hint to ignore a query index.
in
Builder at line 639
Builder
join(Expression|string $table, Closure|Expression|string $first, Expression|string|null $operator = null, mixed $second = null, string $type = 'inner', bool $where = false)
Add a "join" clause to the query.
in
Builder at line 673
Builder
joinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, mixed $second, string $type = 'inner')
Add a "join where" clause to the query.
in
Builder at line 686
Builder
joinSub(Closure|Builder|Builder|Relation|string $query, string $as, Closure|Expression|string $first, Expression|string|null $operator = null, mixed $second = null, string $type = 'inner', bool $where = false)
Add a "subquery join" clause to the query.
in
Builder at line 708
Builder
joinLateral(Closure|Builder|Builder|Relation|string $query, string $as, string $type = 'inner')
Add a "lateral join" clause to the query.
in
Builder at line 727
Builder
leftJoinLateral(Closure|Builder|Builder|Relation|string $query, string $as)
Add a lateral left join to the query.
in
Builder at line 737
Builder
leftJoin(Expression|string $table, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a left join to the query.
in
Builder at line 747
Builder
leftJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, mixed $second)
Add a "join where" clause to the query.
in
Builder at line 758
Builder
leftJoinSub(Closure|Builder|Builder|Relation|string $query, string $as, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a subquery left join to the query.
in
Builder at line 768
Builder
rightJoin(Expression|string $table, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a right join to the query.
in
Builder at line 778
Builder
rightJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, mixed $second)
Add a "right join where" clause to the query.
in
Builder at line 789
Builder
rightJoinSub(Closure|Builder|Builder|Relation|string $query, string $as, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a subquery right join to the query.
in
Builder at line 799
Builder
crossJoin(Expression|string $table, Closure|Expression|string|null $first = null, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a "cross join" clause to the query.
in
Builder at line 816
Builder
crossJoinSub(Closure|Builder|Builder|Relation|string $query, string $as)
Add a subquery cross join to the query.
in
Builder at line 834
Builder
straightJoin(Expression|string $table, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a straight join to the query.
in
Builder at line 844
Builder
straightJoinWhere(Expression|string $table, Closure|Expression|string $first, string $operator, mixed $second)
Add a straight join where clause to the query.
in
Builder at line 855
Builder
straightJoinSub(Closure|Builder|Builder|Relation|string $query, string $as, Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add a subquery straight join to the query.
in
Builder at line 863
protected JoinClause
newJoinClause(Builder $parentQuery, string $type, Expression|string $table)
Get a new "join" clause.
in
Builder at line 871
protected JoinLateralClause
newJoinLateralClause(Builder $parentQuery, string $type, Expression|string $table)
Get a new "join lateral" clause.
in
Builder at line 881
Builder
mergeWheres(array $wheres, array $bindings)
Merge an array of "where" clauses and bindings.
in
Builder at line 897
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.
in
Builder at line 1006
protected Builder
addArrayOfWheres(array $column, string $boolean, string $method = 'where')
Add an array of "where" clauses to the query.
in
Builder at line 1024
array
prepareValueAndOperator(mixed $value, mixed $operator, bool $useDefault = false)
Prepare the value and operator for a where clause.
in
Builder at line 1041
protected bool
invalidOperatorAndValue(mixed $operator, mixed $value)
Determine if the given operator and value combination is legal.
Prevents using Null values with invalid operators.
in
Builder at line 1050
protected bool
invalidOperator(mixed $operator)
Determine if the given operator is supported.
in
Builder at line 1059
protected bool
isBitwiseOperator(string $operator)
Determine if the operator is a bitwise operator.
in
Builder at line 1070
Builder
orWhere(Closure|Builder|Builder|Relation|Expression|array|string $column, mixed $operator = null, mixed $value = null)
Add an "or where" clause to the query.
in
Builder at line 1086
Builder
whereNot(Closure|Builder|Builder|Relation|Expression|array|string $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Add a basic "where not" clause to the query.
in
Builder at line 1102
Builder
orWhereNot(Closure|Builder|Builder|Relation|Expression|array|string $column, mixed $operator = null, mixed $value = null)
Add an "or where not" clause to the query.
in
Builder at line 1112
Builder
whereColumn(Expression|string|array $first, Expression|string|null $operator = null, Expression|string|null $second = null, string $boolean = 'and')
Add a "where" clause comparing two columns to the query.
in
Builder at line 1145
Builder
orWhereColumn(Expression|string|array $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add an "or where" clause comparing two columns to the query.
in
Builder at line 1159
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.
in
Builder at line 1184
Builder
whereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance, string $boolean = 'and')
Add a vector distance "where" clause to the query.
in
Builder at line 1215
Builder
orWhereVectorDistanceLessThan(Expression|string $column, Collection|Arrayable|array|string $vector, float $maxDistance)
Add a vector distance "or where" clause to the query.
in
Builder at line 1225
Builder
whereRaw(Expression|string $sql, mixed $bindings = [], string $boolean = 'and')
Add a raw "where" clause to the query.
in
Builder at line 1239
Builder
orWhereRaw(string $sql, mixed $bindings = [])
Add a raw "or where" clause to the query.
in
Builder at line 1249
Builder
whereBinary(Expression|string $column, string $value, string $boolean = 'and', bool $not = false)
Add a "where binary" clause to the query.
in
Builder at line 1265
Builder
orWhereBinary(Expression|string $column, string $value)
Add an "or where binary" clause to the query.
in
Builder at line 1275
Builder
whereNotBinary(Expression|string $column, string $value, string $boolean = 'and')
Add a "where not binary" clause to the query.
in
Builder at line 1285
Builder
orWhereNotBinary(Expression|string $column, string $value)
Add an "or where not binary" clause to the query.
in
Builder at line 1295
Builder
whereLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and', bool $not = false)
Add a "where like" clause to the query.
in
Builder at line 1315
Builder
orWhereLike(Expression|string $column, string $value, bool $caseSensitive = false)
Add an "or where like" clause to the query.
in
Builder at line 1325
Builder
whereNotLike(Expression|string $column, string $value, bool $caseSensitive = false, string $boolean = 'and')
Add a "where not like" clause to the query.
in
Builder at line 1335
Builder
orWhereNotLike(Expression|string $column, string $value, bool $caseSensitive = false)
Add an "or where not like" clause to the query.
in
Builder at line 1345
Builder
whereNullSafeEquals(Expression|string $column, mixed $value, string $boolean = 'and')
Add a null-safe equality clause to the query.
in
Builder at line 1367
Builder
orWhereNullSafeEquals(Expression|string $column, mixed $value)
Add an "or" null-safe equality clause to the query.
in
Builder at line 1379
Builder
whereIn(Expression|string $column, mixed $values, string $boolean = 'and', bool $not = false)
Add a "where in" clause to the query.
in
Builder at line 1420
Builder
orWhereIn(Expression|string $column, mixed $values)
Add an "or where in" clause to the query.
in
Builder at line 1430
Builder
whereNotIn(Expression|string $column, mixed $values, string $boolean = 'and')
Add a "where not in" clause to the query.
in
Builder at line 1440
Builder
orWhereNotIn(Expression|string $column, mixed $values)
Add an "or where not in" clause to the query.
in
Builder at line 1450
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.
in
Builder at line 1474
Builder
orWhereIntegerInRaw(string $column, Arrayable|array $values)
Add an "or where in raw" clause for integer values to the query.
in
Builder at line 1484
Builder
whereIntegerNotInRaw(string $column, Arrayable|array $values, string $boolean = 'and')
Add a "where not in raw" clause for integer values to the query.
in
Builder at line 1494
Builder
orWhereIntegerNotInRaw(string $column, Arrayable|array $values)
Add an "or where not in raw" clause for integer values to the query.
in
Builder at line 1504
Builder
whereNull(string|array|Expression $columns, string $boolean = 'and', bool $not = false)
Add a "where null" clause to the query.
in
Builder at line 1520
Builder
orWhereNull(string|array|Expression $column)
Add an "or where null" clause to the query.
in
Builder at line 1530
Builder
whereNotNull(string|array|Expression $columns, string $boolean = 'and')
Add a "where not null" clause to the query.
in
Builder at line 1541
Builder
whereBetween(Closure|Builder|Builder|Relation|Expression|string $column, iterable $values, string $boolean = 'and', bool $not = false)
Add a "where between" statement to the query.
in
Builder at line 1571
Builder
whereBetweenColumns(Closure|Builder|Builder|Relation|Expression|string $column, array $values, string $boolean = 'and', bool $not = false)
Add a "where between" statement using columns to the query.
in
Builder at line 1593
Builder
orWhereBetween(Closure|Builder|Builder|Relation|Expression|string $column, iterable $values)
Add an "or where between" statement to the query.
in
Builder at line 1603
Builder
orWhereBetweenColumns(Closure|Builder|Builder|Relation|Expression|string $column, array $values)
Add an "or where between" statement using columns to the query.
in
Builder at line 1614
Builder
whereNotBetween(Closure|Builder|Builder|Relation|Expression|string $column, iterable $values, string $boolean = 'and')
Add a "where not between" statement to the query.
in
Builder at line 1624
Builder
whereNotBetweenColumns(Closure|Builder|Builder|Relation|Expression|string $column, array $values, string $boolean = 'and')
Add a "where not between" statement using columns to the query.
in
Builder at line 1635
Builder
orWhereNotBetween(Closure|Builder|Builder|Relation|Expression|string $column, iterable $values)
Add an "or where not between" statement to the query.
in
Builder at line 1645
Builder
orWhereNotBetweenColumns(Closure|Builder|Builder|Relation|Expression|string $column, array $values)
Add an "or where not between" statement using columns to the query.
in
Builder at line 1656
Builder
whereValueBetween(mixed $value, array $columns, string $boolean = 'and', bool $not = false)
Add a "where between columns" statement using a value to the query.
in
Builder at line 1676
Builder
orWhereValueBetween(mixed $value, array $columns)
Add an "or where between columns" statement using a value to the query.
in
Builder at line 1687
Builder
whereValueNotBetween(mixed $value, array $columns, string $boolean = 'and')
Add a "where not between columns" statement using a value to the query.
in
Builder at line 1698
Builder
orWhereValueNotBetween(mixed $value, array $columns)
Add an "or where not between columns" statement using a value to the query.
in
Builder at line 1708
Builder
orWhereNotNull(array|Expression|string $column)
Add an "or where not null" clause to the query.
in
Builder at line 1718
Builder
whereDate(Expression|Stringable|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where date" statement to the query.
in
Builder at line 1747
Builder
orWhereDate(Expression|Stringable|string $column, mixed $operator, mixed $value = null)
Add an "or where date" statement to the query.
in
Builder at line 1763
Builder
whereTime(Expression|Stringable|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where time" statement to the query.
in
Builder at line 1792
Builder
orWhereTime(Expression|Stringable|string $column, mixed $operator, mixed $value = null)
Add an "or where time" statement to the query.
in
Builder at line 1808
Builder
whereDay(Expression|Stringable|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where day" statement to the query.
in
Builder at line 1842
Builder
orWhereDay(Expression|Stringable|string $column, mixed $operator, mixed $value = null)
Add an "or where day" statement to the query.
in
Builder at line 1858
Builder
whereMonth(Expression|Stringable|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where month" statement to the query.
in
Builder at line 1892
Builder
orWhereMonth(Expression|Stringable|string $column, mixed $operator, mixed $value = null)
Add an "or where month" statement to the query.
in
Builder at line 1908
Builder
whereYear(Expression|Stringable|string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where year" statement to the query.
in
Builder at line 1937
Builder
orWhereYear(Expression|Stringable|string $column, mixed $operator, mixed $value = null)
Add an "or where year" statement to the query.
in
Builder at line 1953
protected Builder
addDateBasedWhere(string $type, Expression|Stringable|string $column, string $operator, mixed $value, string $boolean = 'and')
Add a date based (year, month, day, time) statement to the query.
in
Builder at line 1972
Builder
whereNested(Closure $callback, string $boolean = 'and')
Add a nested "where" statement to the query.
in
Builder at line 1982
Builder
forNestedWhere()
Create a new query instance for nested where condition.
in
Builder at line 1998
Builder
addNestedWhereQuery(Builder $query, string $boolean = 'and')
Add another query builder as a nested where to the query builder.
in
Builder at line 2019
protected Builder
whereSub(Expression|string $column, string $operator, Closure|Builder|Builder|Relation $callback, string $boolean)
Add a full sub-select to the query.
in
Builder at line 2051
Builder
whereExists(Closure|Builder|Builder $callback, string $boolean = 'and', bool $not = false)
Add an "exists" clause to the query.
in
Builder at line 2075
Builder
orWhereExists(Closure|Builder|Builder $callback, bool $not = false)
Add an "or where exists" clause to the query.
in
Builder at line 2088
Builder
whereNotExists(Closure|Builder|Builder $callback, string $boolean = 'and')
Add a "where not exists" clause to the query.
in
Builder at line 2101
Builder
orWhereNotExists(Closure|Builder|Builder $callback)
Add an "or where not exists" clause to the query.
in
Builder at line 2113
Builder
addWhereExistsQuery(Builder $query, string $boolean = 'and', bool $not = false)
Add an "exists" clause to the query.
in
Builder at line 2133
Builder
whereRowValues(array $columns, string $operator, array $values, string $boolean = 'and')
Add a where condition using row values.
in
Builder at line 2157
Builder
orWhereRowValues(array $columns, string $operator, array $values)
Adds an or where condition using row values.
in
Builder at line 2167
Builder
whereJsonContains(string $column, mixed $value, string $boolean = 'and', bool $not = false)
Add a "where JSON contains" clause to the query.
in
Builder at line 2185
Builder
orWhereJsonContains(string $column, mixed $value)
Add an "or where JSON contains" clause to the query.
in
Builder at line 2195
Builder
whereJsonDoesntContain(string $column, mixed $value, string $boolean = 'and')
Add a "where JSON not contains" clause to the query.
in
Builder at line 2205
Builder
orWhereJsonDoesntContain(string $column, mixed $value)
Add an "or where JSON not contains" clause to the query.
in
Builder at line 2215
Builder
whereJsonOverlaps(string $column, mixed $value, string $boolean = 'and', bool $not = false)
Add a "where JSON overlaps" clause to the query.
in
Builder at line 2233
Builder
orWhereJsonOverlaps(string $column, mixed $value)
Add an "or where JSON overlaps" clause to the query.
in
Builder at line 2243
Builder
whereJsonDoesntOverlap(string $column, mixed $value, string $boolean = 'and')
Add a "where JSON not overlap" clause to the query.
in
Builder at line 2253
Builder
orWhereJsonDoesntOverlap(string $column, mixed $value)
Add an "or where JSON not overlap" clause to the query.
in
Builder at line 2263
Builder
whereJsonContainsKey(string $column, string $boolean = 'and', bool $not = false)
Add a clause that determines if a JSON path exists to the query.
in
Builder at line 2277
Builder
orWhereJsonContainsKey(string $column)
Add an "or" clause that determines if a JSON path exists to the query.
in
Builder at line 2287
Builder
whereJsonDoesntContainKey(string $column, string $boolean = 'and')
Add a clause that determines if a JSON path does not exist to the query.
in
Builder at line 2297
Builder
orWhereJsonDoesntContainKey(string $column)
Add an "or" clause that determines if a JSON path does not exist to the query.
in
Builder at line 2307
Builder
whereJsonLength(string $column, mixed $operator, mixed $value = null, string $boolean = 'and')
Add a "where JSON length" clause to the query.
in
Builder at line 2338
Builder
orWhereJsonLength(string $column, mixed $operator, mixed $value = null)
Add an "or where JSON length" clause to the query.
in
Builder at line 2354
Builder
dynamicWhere(string $method, array $parameters)
Handles dynamic "where" clauses to the query.
in
Builder at line 2396
protected void
addDynamic(string $segment, string $connector, array $parameters, int $index)
Add a single dynamic "where" clause statement to the query.
in
Builder at line 2411
Builder
whereFullText(string|array $columns, string $value, array $options = [], string $boolean = 'and')
Add a "where fulltext" clause to the query.
in
Builder at line 2429
Builder
orWhereFullText(string|array $columns, string $value, array $options = [])
Add an "or where fulltext" clause to the query.
in
Builder at line 2440
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.
in
Builder at line 2463
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.
in
Builder at line 2474
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.
in
Builder at line 2497
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.
in
Builder at line 2508
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.
in
Builder at line 2519
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.
in
Builder at line 2529
Builder
groupBy(array|Expression|string ...$groups)
Add a "group by" clause to the query.
in
Builder at line 2546
Builder
groupByRaw(string $sql, array $bindings = [])
Add a raw "groupBy" clause to the query.
in
Builder at line 2560
Builder
having(Expression|Closure|string $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Add a "having" clause to the query.
in
Builder at line 2614
Builder
orHaving(Expression|Closure|string $column, mixed $operator = null, mixed $value = null)
Add an "or having" clause to the query.
in
Builder at line 2633
Builder
havingNested(Closure $callback, string $boolean = 'and')
Add a nested "having" statement to the query.
in
Builder at line 2645
Builder
addNestedHavingQuery(Builder $query, string $boolean = 'and')
Add another query builder as a nested having to the query builder.
in
Builder at line 2663
Builder
havingNull(array|string $columns, string $boolean = 'and', bool $not = false)
Add a "having null" clause to the query.
in
Builder at line 2679
Builder
orHavingNull(string $column)
Add an "or having null" clause to the query.
in
Builder at line 2689
Builder
havingNotNull(array|string $columns, string $boolean = 'and')
Add a "having not null" clause to the query.
in
Builder at line 2699
Builder
orHavingNotNull(string $column)
Add an "or having not null" clause to the query.
in
Builder at line 2709
Builder
havingBetween(string $column, iterable $values, string $boolean = 'and', bool $not = false)
Add a "having between" clause to the query.
in
Builder at line 2731
Builder
havingNotBetween(string $column, iterable $values, string $boolean = 'and')
Add a "having not between" clause to the query.
in
Builder at line 2741
Builder
orHavingBetween(string $column, iterable $values)
Add an "or having between" clause to the query.
in
Builder at line 2751
Builder
orHavingNotBetween(string $column, iterable $values)
Add an "or having not between" clause to the query.
in
Builder at line 2761
protected array
resolveDatePeriodBounds(DatePeriod $period)
Resolve the start and end dates from a DatePeriod.
in
Builder at line 2782
Builder
havingRaw(string $sql, array $bindings = [], string $boolean = 'and')
Add a raw "having" clause to the query.
in
Builder at line 2798
Builder
orHavingRaw(string $sql, array $bindings = [])
Add a raw "or having" clause to the query.
in
Builder at line 2812
Builder
orderBy(Closure|Builder|Builder|Relation|Expression|string $column, SortDirection|string $direction = SortDirection::Ascending)
Add an "order by" clause to the query.
in
Builder at line 2846
Builder
orderByDesc(Closure|Builder|Builder|Relation|Expression|string $column)
Add a descending "order by" clause to the query.
in
Builder at line 2856
Builder
latest(Closure|Builder|Builder|Relation|Expression|string $column = 'created_at')
Add an "order by" clause for a timestamp to the query.
in
Builder at line 2866
Builder
oldest(Closure|Builder|Builder|Relation|Expression|string $column = 'created_at')
Add an "order by" clause for a timestamp to the query.
in
Builder at line 2879
Builder
orderByVectorDistance(Expression|string $column, Collection|Arrayable|array|string $vector)
Add a vector-distance "order by" clause to the query.
in
Builder at line 2910
Builder
inRandomOrder(string|int $seed = '')
Put the query's results in random order.
in
Builder at line 2921
Builder
inOrderOf(Expression|string $column, Arrayable|array $values)
Add an "order by" clause to order results by a given sequence of values.
in
Builder at line 2951
Builder
orderByRaw(string $sql, mixed $bindings = [])
Add a raw "order by" clause to the query.
in
Builder at line 2965
protected void
addOrderBindings(array $bindings)
Attach bindings to the last column order so removing it also removes its parameters.
in
Builder at line 3037
Builder
groupLimit(int $value, string $column)
Add a "group limit" clause to the query.
in
Builder at line 3051
Builder
forPage(int $page, int $perPage = 15)
Set the limit and offset for a given page.
in
Builder at line 3062
Builder
forPageBeforeId(int $perPage = 15, mixed $lastId = 0, string $column = 'id')
Constrain the query to the previous "page" of results before a given ID.
in
Builder at line 3096
Builder
forPageAfterId(int $perPage = 15, mixed $lastId = 0, string $column = 'id')
Constrain the query to the next "page" of results after a given ID.
in
Builder at line 3130
Builder
reorder(Closure|Builder|Builder|Relation|Expression|string|null $column = null, SortDirection|string $direction = SortDirection::Ascending)
Remove all existing orders and optionally add a new order.
in
Builder at line 3150
Builder
reorderDesc(Closure|Builder|Builder|Relation|Expression|string|null $column)
Add descending "reorder" clause to the query.
in
Builder at line 3158
protected array
removeExistingOrdersFor(string $column)
Get an array with all orders with a given column removed.
in
Builder at line 3166
protected array
removeOrdersFor(array $orders, array $bindings, string $column)
Remove matching orders and only their owned parameters.
in
Builder at line 3215
Builder
union(Closure|Builder|Builder $query, bool $all = false)
Add a "union" statement to the query.
in
Builder at line 3242
Builder
unionAll(Closure|Builder|Builder $query)
Add a "union all" statement to the query.
in
Builder at line 3252
Builder
lock(string|bool $value = true)
Lock the selected rows in the table.
in
Builder at line 3289
Builder
skipLocked()
Skip rows locked by another transaction when supported by the server.
in
Builder at line 3307
Builder
timeout(int|null $seconds)
Set a query execution timeout in seconds.
in
Builder at line 3323
Builder
beforeQuery(callable $callback)
Register a closure to be invoked before the query is executed.
in
Builder at line 3333
void
applyBeforeQueryCallbacks()
Invoke the "before query" modification callbacks.
in
Builder at line 3348
Builder
afterQuery(Closure $callback)
Register a closure to be invoked after the query is executed.
in
Builder at line 3361
Collection
applyAfterQueryCallbacks(Collection $result)
Invoke the "after query" modification callbacks.
in
Builder at line 3373
string
toSql()
Get the SQL representation of the query.
in
Builder at line 3383
string
toRawSql()
Get the raw SQL representation of the query with embedded bindings.
in
Builder at line 3397
mixed
find(int|string $id, Expression|array|string $columns = ['*'])
Execute a query for a single record by ID.
in
Builder at line 3411
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.
in
Builder at line 3432
mixed
value(Expression|string $column)
Get a single column's value from the first result of a query.
in
Builder at line 3444
mixed
rawValue(string $expression, array $bindings = [])
Get a single expression value from the first result of a query.
in
Builder at line 3459
mixed
soleValue(Expression|string $column)
Get a single column's value from the first result of a query if it's the sole matching record.
in
Builder at line 3474
Collection
get(Expression|array|string $columns = ['*'])
Execute the query as a "select" statement.
in
Builder at line 3493
protected array
runSelect()
Run the query as a "select" statement against the connection.
in
Builder at line 3514
protected mixed
withoutFetchUsing(callable $callback)
Execute the given callback without custom fetch mode arguments.
in
Builder at line 3532
protected Collection
withoutGroupLimitKeys(Collection $items)
Remove the group limit keys from the results in the collection.
in
Builder at line 3563
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.
in
Builder at line 3591
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.
in
Builder at line 3614
CursorPaginator
cursorPaginate(int $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.
in
Builder at line 3631
protected Collection
ensureOrderForCursorPagination(bool $shouldReverse = false)
Ensure the proper order by required for cursor pagination.
in
Builder at line 3666
protected void
markKeysetCondition(int $offset, string|null $column = null)
Record the paging predicate and the bindings it owns.
in
Builder at line 3691
void
prepareCursorOrdering()
| internal | paging hook for framework and database-driver builders |
Retain membership ordering before cursor traversal reverses it.
in
Builder at line 3714
bool
restoreKeysetOrdersFrom(Builder $source)
| internal | paging hook for framework and database-driver builders |
Restore the operation's ordering when a global scope replaces its paging orders.
in
Builder at line 3748
Builder
prioritizeKeysetOrders(bool $limited = false)
| internal |
Sort an ID iteration by its paging column before any other order.
in
Builder at line 3775
void
ensureLimitedIterationOrdersById(string $column, bool $descending)
| internal |
Reject limited ID iteration when another order would choose different rows.
in
Builder at line 3803
Builder
addCursorPaginationConditions(array $orders, array $bindings)
| internal |
Add cursor comparisons resolved by the calling query or Eloquent builder.
in
Builder at line 3821
protected void
groupOrWheresForKeyset()
Keep existing "or" conditions from bypassing the page boundary.
in
Builder at line 3833
protected void
addCursorComparisons(array $orders, array $bindings, int $index)
Add the ordered comparisons for a compound cursor.
in
Builder at line 3852
protected bool
requiresKeysetIsolation(bool $limitSelectsRows)
Determine whether paging must filter the result of this SELECT.
in
Builder at line 3861
protected Builder
prepareForSelect()
Prepare a SELECT without changing the logical query retained by its caller.
in
Builder at line 3948
protected array
collectKeysetConditions(array $wheres, array $conditions, bool $includeSelect)
Collect paging constraints without rewriting nested groups shared with another query.
in
Builder at line 3978
protected array
normalizeKeysetColumns(array $where)
Normalize only framework-owned comparison columns to selected output names.
in
Builder at line 3999
protected array
getKeysetSelection(string $column)
Get the source column and output name of a selected entry.
in
Builder at line 4020
string
getKeysetOutputColumn(string $parameter, bool $source = false)
| internal |
Get the selected output name for a paging column.
in
Builder at line 4046
protected string|null
getKeysetSourceOutputColumn(string $column)
Find the selected output that represents a paging source column.
in
Builder at line 4061
protected bool
isSameKeysetSourceColumn(string $left, string $right)
Compare source references without conflating two explicitly qualified columns.
in
Builder at line 4070
protected string
resolveKeysetOrderColumn(string $column)
Keep an ID page ordered by its WHERE source when an output alias shadows it.
in
Builder at line 4098
protected void
collectKeysetParameters(array $where, array $parameters)
Collect the output columns used by a compound paging constraint.
in
Builder at line 4115
protected array
mapUnionKeysetColumns(Builder $member, array $parameters)
Map union output columns only when their correspondence can be proven.
in
Builder at line 4163
protected bool
selectsAllSourceColumns()
Determine whether the projection selects only the source's wildcard columns.
in
Builder at line 4172
protected Builder
applyUnionKeysetConditions(Builder $root, array $conditions, array $parameters)
Apply inherited paging outside member bounds and through unbounded nested unions.
in
Builder at line 4202
protected Builder
appendKeysetConditions(array $conditions, array $mapping = [], bool $output = false)
Append comparisons using the member's source columns or isolated output names.
in
Builder at line 4217
protected array
rebindKeysetColumns(array $where, array $mapping, bool $output)
Rebind only owned comparisons, preserving user predicates and shared nested groups.
in
Builder at line 4243
protected void
restoreKeysetOrdering()
Restore membership ordering from live entries and the orders paging removed.
Drivers use this when their clauses select rows according to the original order.
in
Builder at line 4263
protected void
isolateKeysetSelect(bool $limitSelectsRows)
Move row selection inside a derived table while retaining the page outside it.
in
Builder at line 4299
int
getCountForPagination(array $columns = ['*'])
Get the count of the total records for the paginator.
in
Builder at line 4332
protected array
runPaginationCountQuery(array $columns = ['*'])
Run a pagination count query.
in
Builder at line 4367
protected Builder
cloneForPaginationCount()
Clone the existing query instance for usage in a pagination subquery.
in
Builder at line 4383
protected array
withoutSelectAliases(array $columns)
Remove the column aliases since they will break count queries.
in
Builder at line 4397
LazyCollection
cursor()
Get a lazy collection for the given query.
in
Builder at line 4427
protected void
enforceOrderBy()
Throw an exception if the query doesn't have an orderBy clause.
in
Builder at line 4442
Collection
pluck(Expression|string $column, string|null $key = null)
Get a collection instance containing the values of a given column.
in
Builder at line 4452
array
pluckWithColumn(Expression|string $column, string|null $key = null)
Get column values and the returned field name for Eloquent attribute conversion.
in
Builder at line 4509
protected string|null
stripTableForPluck(Expression|string|null $column)
Strip off the table name or alias from a column identifier.
in
Builder at line 4527
protected Collection
pluckFromObjectColumn(array $queryResult, string $column, string|null $key)
Retrieve column values from rows represented as objects.
in
Builder at line 4547
protected Collection
pluckFromArrayColumn(array $queryResult, string $column, string|null $key)
Retrieve column values from rows represented as arrays.
in
Builder at line 4567
string
implode(string $column, string $glue = '')
Concatenate values of a given column as a string.
in
Builder at line 4575
bool
exists()
Determine if any rows exist for the current query.
in
Builder at line 4601
bool
doesntExist()
Determine if no rows exist for the current query.
in
Builder at line 4609
mixed
existsOr(Closure $callback)
Execute the given callback if no rows exist for the current query.
in
Builder at line 4617
mixed
doesntExistOr(Closure $callback)
Execute the given callback if rows exist for the current query.
in
Builder at line 4627
int
count(Expression|string $columns = '*')
Retrieve the "count" result of the query.
in
Builder at line 4635
mixed
min(Expression|string $column)
Retrieve the minimum value of a given column.
in
Builder at line 4643
mixed
max(Expression|string $column)
Retrieve the maximum value of a given column.
in
Builder at line 4653
mixed
sum(Expression|string $column)
Retrieve the sum of the values of a given column.
in
Builder at line 4665
mixed
avg(Expression|string $column)
Retrieve the average of the values of a given column.
in
Builder at line 4675
mixed
average(Expression|string $column)
Alias for the "avg" method.
in
Builder at line 4683
mixed
aggregate(string $function, array $columns = ['*'])
Execute an aggregate function on the database.
in
Builder at line 4711
float|int
numericAggregate(string $function, array $columns = ['*'])
Execute a numeric aggregate function on the database.
in
Builder at line 4740
protected Builder
setAggregate(string $function, array $columns)
Set the aggregate property without running the query.
in
Builder at line 4756
protected bool
shouldPreserveAggregateOrdering()
Determine whether ordering selects rows retained by the aggregate's inner query.
in
Builder at line 4773
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.
in
Builder at line 4791
bool
insert(array $values)
Insert new records into the database.
in
Builder at line 4831
int
insertOrIgnore(array $values)
Insert new records into the database while ignoring errors.
in
Builder at line 4862
Collection
insertOrIgnoreReturning(array $values, array $returning = ['*'], array|string|null $uniqueBy = null)
Insert records while ignoring conflicts and return the inserted rows.
in
Builder at line 4910
int|string
insertGetId(array $values, string|null $sequence = null)
Insert a new record and get the value of the primary key.
in
Builder at line 4926
int
insertUsing(array $columns, Closure|Builder|Builder|Relation|string $query)
Insert new records into the table using a subquery.
in
Builder at line 4943
int
insertOrIgnoreUsing(array $columns, Closure|Builder|Builder|Relation|string $query)
Insert new records into the table using a subquery while ignoring errors.
in
Builder at line 4960
int
update(array $values)
Update records in the database.
in
Builder at line 4998
int
updateFrom(array $values)
Update records in a PostgreSQL database using the update from syntax.
in
Builder at line 5030
bool
updateOrInsert(array $attributes, array|callable $values = [])
Insert or update a record matching the attributes, and fill it with values.
in
Builder at line 5056
int
upsert(array $values, array|string $uniqueBy, array|null $update = null)
Insert new records or update the existing ones.
in
Builder at line 5105
int
increment(string $column, mixed $amount = 1, array $extra = [])
Increment a column's value by a given amount.
in
Builder at line 5123
int
incrementEach(array $columns, array $extra = [])
Increment the given column's values by the given amounts.
in
Builder at line 5146
int
decrement(string $column, mixed $amount = 1, array $extra = [])
Decrement a column's value by a given amount.
in
Builder at line 5164
int
decrementEach(array $columns, array $extra = [])
Decrement the given column's values by the given amounts.
in
Builder at line 5183
int
delete(mixed $id = null)
Delete records from the database.
in
Builder at line 5205
void
truncate()
Run a "truncate" statement on the table.
in
JoinClause at line 109
Builder
newQuery()
Get a new instance of the join clause builder.
in
JoinClause at line 117
protected Builder
forSubQuery()
Create a new query instance for sub-query.
in
Builder at line 5238
array
getColumns()
Get all of the query builder's columns in a text-only array with all expressions evaluated.
in
Builder at line 5248
Expression
raw(mixed $value)
Create a raw database expression.
in
Builder at line 5256
protected Collection
getUnionBuilders()
Get the query builder instances that are used in the union of the query.
in
Builder at line 5266
int|null
getLimit()
Get the "limit" value for the query or null if it's not set.
in
Builder at line 5276
int|null
getOffset()
Get the "offset" value for the query or null if it's not set.
in
Builder at line 5288
array
getBindings()
Get the current query value bindings in a flattened array.
in
Builder at line 5296
protected array
getBindingsForSelect()
Get the binding groups in the order used by this select statement.
in
Builder at line 5306
array
getRawBindings()
Get the raw array of bindings.
in
Builder at line 5320
Builder
setBindings(array $bindings, string $type = 'where')
Set the bindings on the query builder.
in
Builder at line 5339
Builder
addBinding(mixed $value, string $type = 'where')
Add a binding to the query.
in
Builder at line 5360
mixed
castBinding(mixed $value)
Cast the given binding value.
in
Builder at line 5374
Builder
mergeBindings(Builder $query)
Merge an array of bindings into our bindings.
in
Builder at line 5388
array
cleanBindings(array $bindings)
Remove all of the expressions from a list of bindings.
in
Builder at line 5402
protected mixed
flattenValue(mixed $value)
Get a scalar type value from an unknown type of input.
in
Builder at line 5410
protected string
defaultKeyName()
Get the default key name of the table.
in
Builder at line 5418
ConnectionInterface
getConnection()
Get the database connection instance.
in
Builder at line 5428
protected void
ensureConnectionSupportsVectors()
Ensure the database connection supports vector queries.
in
Builder at line 5472
Builder
fetchUsing(mixed ...$fetchUsing)
Set the PDO fetch mode arguments for the query.
The @return $this tag lets @phpstan-this-out reach a chained call.
in
Builder at line 5482
protected bool
isQueryable(mixed $value)
Determine if the value is a query builder instance or a Closure.
in
Builder at line 5495
protected Builder
prepareQueryForEmbedding(Builder $query)
Prepare the query for embedding in another statement.
in
Builder at line 5521
Builder
cloneWithout(array $properties)
Clone the query without the given properties.
in
Builder at line 5529
protected void
resetProperties(array $properties)
Clear query properties while retaining defaults required by non-nullable types.
in
Builder at line 5544
Builder
cloneWithoutBindings(array $except)
Clone the query without the given bindings.
in
Builder at line 5584
never
dd()
Die and dump the current SQL and bindings.
in
Builder at line 5592
never
ddRawSql()
Die and dump the current SQL with embedded bindings.
in
Builder at line 5600
static void
flushState()
Flush all static state.
in
JoinClause at line 82
JoinClause
on(Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null, string $boolean = 'and')
Add an "on" clause to the join.
On clauses can be chained, e.g.
$join->on('contacts.user_id', '=', 'users.id') ->on('contacts.info_id', '=', 'info.id')
will produce the following SQL:
on contacts.user_id = users.id and contacts.info_id = info.id
in
JoinClause at line 98
JoinClause
orOn(Closure|Expression|string $first, Expression|string|null $operator = null, Expression|string|null $second = null)
Add an "or on" clause to the join.
in
JoinClause at line 125
protected Builder
newParentQuery()
Create a new parent query instance.