Builder
class Builder (View source)
Properties
protected Connection | $connection | The database connection instance. | |
protected Grammar | $grammar | The database query grammar instance. | |
protected Processor | $processor | The database query post processor instance. | |
protected array | $bindings | The current query value bindings. | |
array | $aggregate | An aggregate function and column to be run. | |
array | $columns | The columns that should be returned. | |
bool | $distinct | Indicates if the query returns distinct results. | |
string | $from | The table which the query is targeting. | |
array | $joins | The table joins for the query. | |
array | $wheres | The where constraints for the query. | |
array | $groups | The groupings for the query. | |
array | $havings | The having constraints for the query. | |
array | $orders | The orderings for the query. | |
int | $limit | The maximum number of records to return. | |
int | $offset | The number of records to skip. | |
array | $unions | The query union statements. | |
int | $unionLimit | The maximum number of union records to return. | |
int | $unionOffset | The number of union records to skip. | |
array | $unionOrders | The orderings for the union query. | |
string|bool | $lock | Indicates whether row locking is being used. | |
protected array | $backups | The backups of fields while doing a pagination count. | |
protected string | $cacheKey | The key that should be used when caching the query. | |
protected int | $cacheMinutes | The number of minutes to cache the query. | |
protected array | $cacheTags | The tags for the query cache. | |
protected string | $cacheDriver | The cache driver to be used. | |
protected array | $operators | All of the available clause operators. | |
protected bool | $useWritePdo | Whether use write pdo for select. |
Methods
void | __construct(ConnectionInterface $connection, Grammar $grammar, Processor $processor) Create a new query builder instance. | |
$this | select(array $columns = array('*')) Set the columns to be selected. | |
Builder|Builder | selectRaw(string $expression) Add a new "raw" select expression to the query. | |
$this | addSelect(mixed $column) Add a new select column to the query. | |
$this | distinct() Force the query to only return distinct results. | |
$this | from(string $table) Set the table which the query is targeting. | |
$this | join(string $table, string $one, string $operator = null, string $two = null, string $type = 'inner', bool $where = false) Add a join clause to the query. | |
Builder|Builder | joinWhere(string $table, string $one, string $operator, string $two, string $type = 'inner') Add a "join where" clause to the query. | |
Builder|Builder | leftJoin(string $table, string $first, string $operator = null, string $second = null) Add a left join to the query. | |
Builder|Builder | leftJoinWhere(string $table, string $one, string $operator, string $two) Add a "join where" clause to the query. | |
Builder|Builder | rightJoin(string $table, string $first, string $operator = null, string $second = null) Add a right join to the query. | |
Builder|Builder | rightJoinWhere(string $table, string $one, string $operator, string $two) Add a "right join where" clause to the query. | |
$this | where(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Add a basic where clause to the query. | |
Builder|Builder | orWhere(string $column, string $operator = null, mixed $value = null) Add an "or where" clause to the query. | |
bool | invalidOperatorAndValue(string $operator, mixed $value) Determine if the given operator and value combination is legal. | |
$this | whereRaw(string $sql, array $bindings = array(), string $boolean = 'and') Add a raw where clause to the query. | |
Builder|Builder | orWhereRaw(string $sql, array $bindings = array()) Add a raw or where clause to the query. | |
$this | whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false) Add a where between statement to the query. | |
Builder|Builder | orWhereBetween(string $column, array $values) Add an or where between statement to the query. | |
Builder|Builder | whereNotBetween(string $column, array $values, string $boolean = 'and') Add a where not between statement to the query. | |
Builder|Builder | orWhereNotBetween(string $column, array $values) Add an or where not between statement to the query. | |
Builder|Builder | whereNested(Closure $callback, string $boolean = 'and') Add a nested where statement to the query. | |
$this | addNestedWhereQuery(Builder|Builder $query, string $boolean = 'and') Add another query builder as a nested where to the query builder. | |
$this | whereSub(string $column, string $operator, Closure $callback, string $boolean) Add a full sub-select to the query. | |
$this | whereExists(Closure $callback, string $boolean = 'and', bool $not = false) Add an exists clause to the query. | |
Builder|Builder | orWhereExists(Closure $callback, bool $not = false) Add an or exists clause to the query. | |
Builder|Builder | whereNotExists(Closure $callback, string $boolean = 'and') Add a where not exists clause to the query. | |
Builder|Builder | orWhereNotExists(Closure $callback) Add a where not exists clause to the query. | |
$this | whereIn(string $column, mixed $values, string $boolean = 'and', bool $not = false) Add a "where in" clause to the query. | |
Builder|Builder | orWhereIn(string $column, mixed $values) Add an "or where in" clause to the query. | |
Builder|Builder | whereNotIn(string $column, mixed $values, string $boolean = 'and') Add a "where not in" clause to the query. | |
Builder|Builder | orWhereNotIn(string $column, mixed $values) Add an "or where not in" clause to the query. | |
$this | whereInSub(string $column, Closure $callback, string $boolean, bool $not) Add a where in with a sub-select to the query. | |
$this | whereNull(string $column, string $boolean = 'and', bool $not = false) Add a "where null" clause to the query. | |
Builder|Builder | orWhereNull(string $column) Add an "or where null" clause to the query. | |
Builder|Builder | whereNotNull(string $column, string $boolean = 'and') Add a "where not null" clause to the query. | |
Builder|Builder | orWhereNotNull(string $column) Add an "or where not null" clause to the query. | |
Builder|Builder | whereDate(string $column, string $operator, int $value, string $boolean = 'and') Add a "where date" statement to the query. | |
Builder|Builder | whereDay(string $column, string $operator, int $value, string $boolean = 'and') Add a "where day" statement to the query. | |
Builder|Builder | whereMonth(string $column, string $operator, int $value, string $boolean = 'and') Add a "where month" statement to the query. | |
Builder|Builder | whereYear(string $column, string $operator, int $value, string $boolean = 'and') Add a "where year" statement to the query. | |
$this | addDateBasedWhere(string $type, string $column, string $operator, int $value, string $boolean = 'and') Add a date based (year, month, day) statement to the query. | |
$this | dynamicWhere(string $method, string $parameters) Handles dynamic "where" clauses to the query. | |
void | addDynamic(string $segment, string $connector, array $parameters, int $index) Add a single dynamic where clause statement to the query. | |
$this | groupBy() Add a "group by" clause to the query. | |
$this | having(string $column, string $operator = null, string $value = null, string $boolean = 'and') Add a "having" clause to the query. | |
Builder|Builder | orHaving(string $column, string $operator = null, string $value = null) Add a "or having" clause to the query. | |
$this | havingRaw(string $sql, array $bindings = array(), string $boolean = 'and') Add a raw having clause to the query. | |
Builder|Builder | orHavingRaw(string $sql, array $bindings = array()) Add a raw or having clause to the query. | |
$this | orderBy(string $column, string $direction = 'asc') Add an "order by" clause to the query. | |
Builder|Builder | latest(string $column = 'created_at') Add an "order by" clause for a timestamp to the query. | |
Builder|Builder | oldest(string $column = 'created_at') Add an "order by" clause for a timestamp to the query. | |
$this | orderByRaw(string $sql, array $bindings = array()) Add a raw "order by" clause to the query. | |
$this | offset(int $value) Set the "offset" value of the query. | |
Builder|Builder | skip(int $value) Alias to set the "offset" value of the query. | |
$this | limit(int $value) Set the "limit" value of the query. | |
Builder|Builder | take(int $value) Alias to set the "limit" value of the query. | |
Builder|Builder | forPage(int $page, int $perPage = 15) Set the limit and offset for a given page. | |
Builder|Builder | union(Builder|Closure $query, bool $all = false) Add a union statement to the query. | |
Builder|Builder | unionAll(Builder|Closure $query) Add a union all statement to the query. | |
$this | lock(bool $value = true) Lock the selected rows in the table. | |
Builder | lockForUpdate() Lock the selected rows in the table for updating. | |
Builder | sharedLock() Share lock the selected rows in the table. | |
string | toSql() Get the SQL representation of the query. | |
$this | remember(DateTime|int $minutes, string $key = null) Indicate that the query results should be cached. | |
Builder|Builder | rememberForever(string $key = null) Indicate that the query results should be cached forever. | |
$this | cacheTags(array|mixed $cacheTags) Indicate that the results, if cached, should use the given cache tags. | |
$this | cacheDriver(string $cacheDriver) Indicate that the results, if cached, should use the given cache driver. | |
mixed|Builder | find(int $id, array $columns = array('*')) Execute a query for a single record by ID. | |
mixed | pluck(string $column) Pluck a single column's value from the first result of a query. | |
mixed|Builder | first(array $columns = array('*')) Execute the query and get the first result. | |
array|Builder[] | get(array $columns = array('*')) Execute the query as a "select" statement. | |
array|Builder[] | getFresh(array $columns = array('*')) Execute the query as a fresh "select" statement. | |
array | runSelect() Run the query as a "select" statement against the connection. | |
array | getCached(array $columns = array('*')) Execute the query as a cached "select" statement. | |
CacheManager | getCache() Get the cache object with tags assigned, if applicable. | |
array | getCacheInfo() Get the cache key and cache minutes as an array. | |
string | getCacheKey() Get a unique cache key for the complete query. | |
string | generateCacheKey() Generate the unique cache key for the query. | |
Closure | getCacheCallback(array $columns) Get the Closure callback used when caching queries. | |
void | chunk(int $count, callable $callback) Chunk the results of the query. | |
array | lists(string $column, string $key = null) Get an array with the values of a given column. | |
array | getListSelect(string $column, string $key) Get the columns that should be used in a list array. | |
string | implode(string $column, string $glue = null) Concatenate values of a given column as a string. | |
Paginator | paginate(int $perPage = 15, array $columns = array('*')) Get a paginator for the "select" statement. | |
Paginator | groupedPaginate(Factory $paginator, int $perPage, array $columns) Create a paginator for a grouped pagination statement. | |
Paginator | buildRawPaginator(Factory $paginator, array $results, int $perPage) Build a paginator instance from a raw result array. | |
Paginator | ungroupedPaginate(Factory $paginator, int $perPage, array $columns) Create a paginator for an un-grouped pagination statement. | |
int | getPaginationCount() Get the count of the total records for pagination. | |
Paginator | simplePaginate(int $perPage = null, array $columns = array('*')) Get a paginator only supporting simple next and previous links. | |
void | backupFieldsForCount() Backup certain fields for a pagination count. | |
void | restoreFieldsForCount() Restore certain fields for a pagination count. | |
bool | exists() Determine if any rows exist for the current query. | |
int | count(string $columns = '*') Retrieve the "count" result of the query. | |
mixed | min(string $column) Retrieve the minimum value of a given column. | |
mixed | max(string $column) Retrieve the maximum value of a given column. | |
mixed | sum(string $column) Retrieve the sum of the values of a given column. | |
mixed | avg(string $column) Retrieve the average of the values of a given column. | |
mixed | aggregate(string $function, array $columns = array('*')) Execute an aggregate function on the database. | |
bool | insert(array $values) Insert a new record into the database. | |
int | insertGetId(array $values, string $sequence = null) Insert a new record and get the value of the primary key. | |
int | update(array $values) Update a record in the database. | |
int | increment(string $column, int $amount = 1, array $extra = array()) Increment a column's value by a given amount. | |
int | decrement(string $column, int $amount = 1, array $extra = array()) Decrement a column's value by a given amount. | |
int | delete(mixed $id = null) Delete a record from the database. | |
void | truncate() Run a truncate statement on the table. | |
Builder | newQuery() Get a new instance of the query builder. | |
void | mergeWheres(array $wheres, array $bindings) Merge an array of where clauses and bindings. | |
array | cleanBindings(array $bindings) Remove all of the expressions from a list of bindings. | |
Expression | raw(mixed $value) Create a raw database expression. | |
array | getBindings() Get the current query value bindings in a flattened array. | |
array | getRawBindings() Get the raw array of bindings. | |
$this | setBindings(array $bindings, string $type = 'where') Set the bindings on the query builder. | |
$this | addBinding(mixed $value, string $type = 'where') Add a binding to the query. | |
$this | mergeBindings(Builder $query) Merge an array of bindings into our bindings. | |
ConnectionInterface | getConnection() Get the database connection instance. | |
Processor | getProcessor() Get the database query processor instance. | |
Grammar | getGrammar() Get the query grammar instance. | |
$this | useWritePdo() Use the write pdo for query. | |
mixed | __call(string $method, array $parameters) Handle dynamic method calls into the method. |
Details
void __construct(ConnectionInterface $connection, Grammar $grammar, Processor $processor)
Create a new query builder instance.
$this select(array $columns = array('*'))
Set the columns to be selected.
$this addSelect(mixed $column)
Add a new select column to the query.
$this distinct()
Force the query to only return distinct results.
$this from(string $table)
Set the table which the query is targeting.
$this join(string $table, string $one, string $operator = null, string $two = null, string $type = 'inner', bool $where = false)
Add a join clause to the query.
Builder|Builder joinWhere(string $table, string $one, string $operator, string $two, string $type = 'inner')
Add a "join where" clause to the query.
Builder|Builder leftJoin(string $table, string $first, string $operator = null, string $second = null)
Add a left join to the query.
Builder|Builder leftJoinWhere(string $table, string $one, string $operator, string $two)
Add a "join where" clause to the query.
Builder|Builder rightJoin(string $table, string $first, string $operator = null, string $second = null)
Add a right join to the query.
Builder|Builder rightJoinWhere(string $table, string $one, string $operator, string $two)
Add a "right join where" clause to the query.
$this where(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')
Add a basic where clause to the query.
Builder|Builder orWhere(string $column, string $operator = null, mixed $value = null)
Add an "or where" clause to the query.
protected bool invalidOperatorAndValue(string $operator, mixed $value)
Determine if the given operator and value combination is legal.
$this whereRaw(string $sql, array $bindings = array(), string $boolean = 'and')
Add a raw where clause to the query.
Builder|Builder orWhereRaw(string $sql, array $bindings = array())
Add a raw or where clause to the query.
$this whereBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
Add a where between statement to the query.
Builder|Builder orWhereBetween(string $column, array $values)
Add an or where between statement to the query.
Builder|Builder whereNotBetween(string $column, array $values, string $boolean = 'and')
Add a where not between statement to the query.
Builder|Builder orWhereNotBetween(string $column, array $values)
Add an or where not between statement to the query.
Builder|Builder whereNested(Closure $callback, string $boolean = 'and')
Add a nested where statement to the query.
$this addNestedWhereQuery(Builder|Builder $query, string $boolean = 'and')
Add another query builder as a nested where to the query builder.
protected $this whereSub(string $column, string $operator, Closure $callback, string $boolean)
Add a full sub-select to the query.
$this whereExists(Closure $callback, string $boolean = 'and', bool $not = false)
Add an exists clause to the query.
Builder|Builder orWhereExists(Closure $callback, bool $not = false)
Add an or exists clause to the query.
Builder|Builder whereNotExists(Closure $callback, string $boolean = 'and')
Add a where not exists clause to the query.
$this whereIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Add a "where in" clause to the query.
Builder|Builder whereNotIn(string $column, mixed $values, string $boolean = 'and')
Add a "where not in" clause to the query.
Builder|Builder orWhereNotIn(string $column, mixed $values)
Add an "or where not in" clause to the query.
protected $this whereInSub(string $column, Closure $callback, string $boolean, bool $not)
Add a where in with a sub-select to the query.
$this whereNull(string $column, string $boolean = 'and', bool $not = false)
Add a "where null" clause to the query.
Builder|Builder whereNotNull(string $column, string $boolean = 'and')
Add a "where not null" clause to the query.
Builder|Builder whereDate(string $column, string $operator, int $value, string $boolean = 'and')
Add a "where date" statement to the query.
Builder|Builder whereDay(string $column, string $operator, int $value, string $boolean = 'and')
Add a "where day" statement to the query.
Builder|Builder whereMonth(string $column, string $operator, int $value, string $boolean = 'and')
Add a "where month" statement to the query.
Builder|Builder whereYear(string $column, string $operator, int $value, string $boolean = 'and')
Add a "where year" statement to the query.
protected $this addDateBasedWhere(string $type, string $column, string $operator, int $value, string $boolean = 'and')
Add a date based (year, month, day) statement to the query.
$this dynamicWhere(string $method, string $parameters)
Handles dynamic "where" clauses to the query.
protected void addDynamic(string $segment, string $connector, array $parameters, int $index)
Add a single dynamic where clause statement to the query.
$this groupBy()
Add a "group by" clause to the query.
$this having(string $column, string $operator = null, string $value = null, string $boolean = 'and')
Add a "having" clause to the query.
Builder|Builder orHaving(string $column, string $operator = null, string $value = null)
Add a "or having" clause to the query.
$this havingRaw(string $sql, array $bindings = array(), string $boolean = 'and')
Add a raw having clause to the query.
Builder|Builder orHavingRaw(string $sql, array $bindings = array())
Add a raw or having clause to the query.
$this orderBy(string $column, string $direction = 'asc')
Add an "order by" clause to the query.
Builder|Builder latest(string $column = 'created_at')
Add an "order by" clause for a timestamp to the query.
Builder|Builder oldest(string $column = 'created_at')
Add an "order by" clause for a timestamp to the query.
$this orderByRaw(string $sql, array $bindings = array())
Add a raw "order by" clause to the query.
$this offset(int $value)
Set the "offset" value of the query.
$this limit(int $value)
Set the "limit" value of the query.
Builder|Builder union(Builder|Closure $query, bool $all = false)
Add a union statement to the query.
$this lock(bool $value = true)
Lock the selected rows in the table.
Builder lockForUpdate()
Lock the selected rows in the table for updating.
Builder sharedLock()
Share lock the selected rows in the table.
string toSql()
Get the SQL representation of the query.
$this remember(DateTime|int $minutes, string $key = null)
Indicate that the query results should be cached.
Builder|Builder rememberForever(string $key = null)
Indicate that the query results should be cached forever.
$this cacheTags(array|mixed $cacheTags)
Indicate that the results, if cached, should use the given cache tags.
$this cacheDriver(string $cacheDriver)
Indicate that the results, if cached, should use the given cache driver.
mixed|Builder find(int $id, array $columns = array('*'))
Execute a query for a single record by ID.
mixed pluck(string $column)
Pluck a single column's value from the first result of a query.
mixed|Builder first(array $columns = array('*'))
Execute the query and get the first result.
array|Builder[] get(array $columns = array('*'))
Execute the query as a "select" statement.
array|Builder[] getFresh(array $columns = array('*'))
Execute the query as a fresh "select" statement.
protected array runSelect()
Run the query as a "select" statement against the connection.
array getCached(array $columns = array('*'))
Execute the query as a cached "select" statement.
protected CacheManager getCache()
Get the cache object with tags assigned, if applicable.
protected array getCacheInfo()
Get the cache key and cache minutes as an array.
string getCacheKey()
Get a unique cache key for the complete query.
string generateCacheKey()
Generate the unique cache key for the query.
protected Closure getCacheCallback(array $columns)
Get the Closure callback used when caching queries.
void chunk(int $count, callable $callback)
Chunk the results of the query.
array lists(string $column, string $key = null)
Get an array with the values of a given column.
protected array getListSelect(string $column, string $key)
Get the columns that should be used in a list array.
string implode(string $column, string $glue = null)
Concatenate values of a given column as a string.
Paginator paginate(int $perPage = 15, array $columns = array('*'))
Get a paginator for the "select" statement.
protected Paginator groupedPaginate(Factory $paginator, int $perPage, array $columns)
Create a paginator for a grouped pagination statement.
Paginator buildRawPaginator(Factory $paginator, array $results, int $perPage)
Build a paginator instance from a raw result array.
protected Paginator ungroupedPaginate(Factory $paginator, int $perPage, array $columns)
Create a paginator for an un-grouped pagination statement.
int getPaginationCount()
Get the count of the total records for pagination.
Paginator simplePaginate(int $perPage = null, array $columns = array('*'))
Get a paginator only supporting simple next and previous links.
This is more efficient on larger data-sets, etc.
protected void backupFieldsForCount()
Backup certain fields for a pagination count.
protected void restoreFieldsForCount()
Restore certain fields for a pagination count.
bool exists()
Determine if any rows exist for the current query.
int count(string $columns = '*')
Retrieve the "count" result of the query.
mixed min(string $column)
Retrieve the minimum value of a given column.
mixed max(string $column)
Retrieve the maximum value of a given column.
mixed sum(string $column)
Retrieve the sum of the values of a given column.
mixed avg(string $column)
Retrieve the average of the values of a given column.
mixed aggregate(string $function, array $columns = array('*'))
Execute an aggregate function on the database.
bool insert(array $values)
Insert a new record into the database.
int insertGetId(array $values, string $sequence = null)
Insert a new record and get the value of the primary key.
int update(array $values)
Update a record in the database.
int increment(string $column, int $amount = 1, array $extra = array())
Increment a column's value by a given amount.
int decrement(string $column, int $amount = 1, array $extra = array())
Decrement a column's value by a given amount.
int delete(mixed $id = null)
Delete a record from the database.
void truncate()
Run a truncate statement on the table.
Builder newQuery()
Get a new instance of the query builder.
void mergeWheres(array $wheres, array $bindings)
Merge an array of where clauses and bindings.
protected array cleanBindings(array $bindings)
Remove all of the expressions from a list of bindings.
Expression raw(mixed $value)
Create a raw database expression.
array getBindings()
Get the current query value bindings in a flattened array.
array getRawBindings()
Get the raw array of bindings.
$this setBindings(array $bindings, string $type = 'where')
Set the bindings on the query builder.
$this addBinding(mixed $value, string $type = 'where')
Add a binding to the query.
$this mergeBindings(Builder $query)
Merge an array of bindings into our bindings.
ConnectionInterface getConnection()
Get the database connection instance.
Processor getProcessor()
Get the database query processor instance.
Grammar getGrammar()
Get the query grammar instance.
$this useWritePdo()
Use the write pdo for query.
mixed __call(string $method, array $parameters)
Handle dynamic method calls into the method.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/4.2/Illuminate/Database/Query/Builder.html