Query
class Query extends Query
ORM query builder.
Properties
protected Connection | $connection | Database connection. | from Query |
protected HelperInterface | $helper | Query helper. | from Query |
protected Compiler | $compiler | Query compiler. | from Query |
protected mixed | $table | Database table. | from Query |
protected bool | $distinct | Select distinct? | from Query |
protected array | $commonTableExpressions | Common table expressions. | from Query |
protected array | $setOperations | Set operations. | from Query |
protected array | $columns | Columns from which we are fetching data. | from Query |
protected array | $wheres | WHERE clauses. | from Query |
protected array | $joins | JOIN clauses. | from Query |
protected array | $groupings | GROUP BY clauses. | from Query |
protected array | $havings | HAVING clauses. | from Query |
protected array | $orderings | ORDER BY clauses. | from Query |
protected int|null | $limit | Limit. | from Query |
protected int|null | $offset | Offset. | from Query |
protected bool|string|null | $lock | Lock. | from Query |
protected string|null | $prefix | Prefix. | from Query |
protected bool | $inSubqueryContext | Is the query in subquery context? | from Query |
static protected PaginationFactoryInterface|Closure | $paginationFactory | Pagination factory. | from Query |
protected ORM | $model | Instance of the model to hydrate. | |
protected string | $modelClass | Class name of the model we're hydrating. | |
protected array | $relationCounters | Relation count subqueries. |
Methods
Create a fresh compiler instance and clone set operation queries when we clone the query.
Returns the columns from which we are fetching data.
Executes the closure if the compiler is of the correct class.
Adds a recursive common table expression.
Sets the columns we want to select using raw SQL.
Adds a WHERE clause.
Adds a raw WHERE clause.
Adds a OR WHERE clause.
Adds a raw OR WHERE clause.
Adds a date comparison clause.
Adds a date comparison clause.
Adds a column comparison clause.
Adds a column comparison clause.
Adds a BETWEEN clause.
Adds a OR NOT BETWEEN clause.
Adds a date range clause.
Adds a date range clause.
Adds a date range clause.
Adds a date range clause.
Adds a IN clause.
Adds a IS NULL clause.
Adds a raw JOIN clause.
Adds a LEFT OUTER JOIN clause.
Adds a raw LEFT OUTER JOIN clause.
Adds a HAVING clause.
Adds a raw HAVING clause.
Adds a raw OR HAVING clause.
Adds a raw ORDER BY clause.
Adds a raw ascending ORDER BY clause.
Adds a raw descending ORDER BY clause.
Executes a SELECT query and returns the first row of the result set or NULL if nothing is found.
Returns a single record from the database.
Creates a result set.
Executes a SELECT query and returns an array containing all of the result set rows.
Executes a SELECT query and returns the value of the chosen column of the first row of the result set.
Executes a SELECT query and returns an array containing the values of the indicated 0-indexed column.
Executes a SELECT query and returns an array where the first column is used as keys and the second as values.
Executes a SELECT query and returns a generator that lets you iterate over the results.
Sets the selected column of the query to the chosen aggreate.
Returns the number of distinct values of the chosen column.
Inserts data into the chosen table.
Inserts data into the chosen table and returns the auto increment id.
Updates data from the chosen table.
Increments column value.
Decrements column value.
Deletes data from the chosen table.
Returns a record using the value of its primary key.
Adds relations to eager load.
Removes relations to eager load.
Parses the count relation name and returns an array consisting of the relation name and the chosen alias.
Adds subqueries that count the number of related records for the chosen relations.
Returns a hydrated model.
Parses includes.
Load includes.
Returns hydrated models.
Calls a scope method on the model.
Details
at line 67
__construct(Connection $connection, ORM $model)
Constructor.
in Query at line 182
__clone()
Create a fresh compiler instance and clone set operation queries when we clone the query.
in Query at line 195
protected
reset()
Resets the query to its default state.
in Query at line 220
$this
inSubqueryContext()
Sets the query to subquery context.
in Query at line 232
static
setPaginationFactory(PaginationFactoryInterface|Closure $factory)
Sets the pagination factory.
in Query at line 242
static PaginationFactoryInterface
getPaginationFactory()
Gets the pagination factory.
in Query at line 259
Connection
getConnection()
Returns the connection instance.
in Query at line 279
array
getCommonTableExpressions()
Returns the common set operations.
in Query at line 289
array
getSetOperations()
Returns the set operations.
in Query at line 299
mixed
getTable()
Returns the database table.
in Query at line 309
bool
isDistinct()
Is it a distict select?
at line 81
array
getColumns()
Returns the columns from which we are fetching data.
in Query at line 329
array
getWheres()
Returns WHERE clauses.
in Query at line 339
array
getJoins()
Returns JOIN clauses.
in Query at line 349
array
getGroupings()
Returns GROUP BY clauses.
in Query at line 359
array
getHavings()
Returns HAVING clauses.
in Query at line 369
array
getOrderings()
Returns ORDER BY clauses.
in Query at line 379
int|null
getLimit()
Returns the limit.
in Query at line 389
int|null
getOffset()
Returns the offset.
in Query at line 399
bool|string|null
getLock()
Returns the lock.
in Query at line 409
string|null
getPrefix()
Returns the prefix.
in Query at line 421
$this
forCompiler(string $compilerClass, Closure $query)
Executes the closure if the compiler is of the correct class.
in Query at line 439
$this
with(string $name, array $columns, Subquery $query)
Adds a common table expression.
in Query at line 459
$this
withRecursive(string $name, array $columns, Subquery $query)
Adds a recursive common table expression.
in Query at line 472
protected $this
setOperation(string $operation)
Adds a set operation.
in Query at line 492
$this
union()
Adds a UNION operation.
in Query at line 502
$this
unionAll()
Adds a UNION ALL operation.
in Query at line 512
$this
intersect()
Adds a INTERSECT operation.
in Query at line 522
$this
intersectAll()
Adds a INTERSECT ALL operation.
in Query at line 532
$this
except()
Adds a EXCEPT operation.
in Query at line 542
$this
exceptAll()
Adds a EXCEPT ALL operation.
in Query at line 553
$this
table(string|array|Subquery|Raw|null $table)
Sets table we want to query.
in Query at line 588
$this
select(array $columns)
Sets the columns we want to select.
in Query at line 602
$this
selectRaw(string $sql, array $parameters = [])
Sets the columns we want to select using raw SQL.
in Query at line 614
$this
distinct()
Select distinct?
in Query at line 630
$this
where(string|array|Closure $column, string|null $operator = null, mixed $value = null, string $separator = 'AND')
Adds a WHERE clause.
in Query at line 669
$this
whereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null, string $separator = 'AND')
Adds a raw WHERE clause.
in Query at line 694
$this
orWhere(string|array|Closure $column, string|null $operator = null, mixed $value = null)
Adds a OR WHERE clause.
in Query at line 707
$this
orWhereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null)
Adds a raw OR WHERE clause.
in Query at line 721
$this
whereDate(string $column, string $operator, string|DateTimeInterface $date, string $separator = 'AND')
Adds a date comparison clause.
in Query at line 744
$this
orWhereDate(string $column, string $operator, string|DateTimeInterface $date)
Adds a date comparison clause.
in Query at line 758
$this
whereColumn(string|array $column1, string $operator, string|array $column2, string $separator = 'AND')
Adds a column comparison clause.
in Query at line 780
$this
orWhereColumn(string|array $column1, string $operator, string|array $column2)
Adds a column comparison clause.
in Query at line 795
$this
between(mixed $column, mixed $value1, mixed $value2, string $separator = 'AND', bool $not = false)
Adds a BETWEEN clause.
in Query at line 818
$this
orBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR BETWEEN clause.
in Query at line 831
$this
notBetween(mixed $column, mixed $value1, mixed $value2)
Adds a NOT BETWEEN clause.
in Query at line 844
$this
orNotBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR NOT BETWEEN clause.
in Query at line 859
$this
betweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2, string $separator = 'AND', bool $not = false)
Adds a date range clause.
in Query at line 881
orBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 893
notBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 905
orNotBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 919
$this
in(mixed $column, array|Raw|Subquery $values, string $separator = 'AND', bool $not = false)
Adds a IN clause.
in Query at line 964
$this
orNotIn(mixed $column, array|Raw|Subquery $values)
Adds a OR NOT IN clause.
in Query at line 977
$this
isNull(mixed $column, string $separator = 'AND', bool $not = false)
Adds a IS NULL clause.
in Query at line 996
$this
orIsNull(mixed $column)
Adds a OR IS NULL clause.
in Query at line 1007
$this
isNotNull(mixed $column)
Adds a IS NOT NULL clause.
in Query at line 1018
$this
orIsNotNull(mixed $column)
Adds a OR IS NOT NULL clause.
in Query at line 1031
$this
exists(Subquery $query, string $separator = 'AND', bool $not = false)
Adds a EXISTS clause.
at line 104
$this
join(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null, string $type = 'INNER', bool $raw = false)
Adds a JOIN clause.
in Query at line 1123
$this
joinRaw(string $table, string $column1, string $operator, string $raw, string $type = 'INNER')
Adds a raw JOIN clause.
in Query at line 1137
$this
leftJoin(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null)
Adds a LEFT OUTER JOIN clause.
in Query at line 1151
$this
leftJoinRaw(string $table, string $column1, string $operator, string $raw)
Adds a raw LEFT OUTER JOIN clause.
in Query at line 1162
$this
groupBy(string|array $columns)
Adds a GROUP BY clause.
in Query at line 1178
$this
having(string $column, string $operator, mixed $value, string $separator = 'AND')
Adds a HAVING clause.
in Query at line 1200
$this
havingRaw(string $raw, string $operator, mixed $value, string $separator = 'AND')
Adds a raw HAVING clause.
in Query at line 1213
$this
orHaving(string $column, string $operator, mixed $value)
Adds a OR HAVING clause.
in Query at line 1226
$this
orHavingRaw(string $raw, string $operator, mixed $value)
Adds a raw OR HAVING clause.
in Query at line 1238
$this
orderBy(string|array $columns, string $order = 'ASC')
Adds a ORDER BY clause.
in Query at line 1257
$this
orderByRaw(string $raw, array $parameters = [], string $order = 'ASC')
Adds a raw ORDER BY clause.
in Query at line 1268
$this
ascending(string|array $columns)
Adds an ascending ORDER BY clause.
in Query at line 1280
$this
ascendingRaw(string $raw, array $parameters = [])
Adds a raw ascending ORDER BY clause.
in Query at line 1291
$this
descending(string|array $columns)
Adds a descending ORDER BY clause.
in Query at line 1303
$this
descendingRaw(string $raw, array $parameters = [])
Adds a raw descending ORDER BY clause.
in Query at line 1313
$this
clearOrderings()
Clears the ordering clauses.
in Query at line 1326
$this
limit(int $limit)
Adds a LIMIT clause.
in Query at line 1339
$this
offset(int $offset)
Adds a OFFSET clause.
in Query at line 1352
$this
lock(bool|string $lock = true)
Enable lock.
in Query at line 1364
$this
sharedLock()
Enable shared lock.
in Query at line 1375
$this
prefix(string $prefix)
Adds a query prefix.
in Query at line 1388
protected mixed
fetchFirst(mixed ...$fetchMode)
Executes a SELECT query and returns the first row of the result set or NULL if nothing is found.
at line 479
mixed
first()
Returns a single record from the database.
at line 497
protected ResultSet
createResultSet(array $results)
Creates a result set.
in Query at line 1423
protected array|ResultSet
fetchAll(bool $returnResultSet, mixed ...$fetchMode)
Executes a SELECT query and returns an array containing all of the result set rows.
at line 507
ResultSet
all()
Returns a result set from the database.
in Query at line 1448
mixed
column(string $column = null)
Executes a SELECT query and returns the value of the chosen column of the first row of the result set.
in Query at line 1466
array
columns(string $column = null)
Executes a SELECT query and returns an array containing the values of the indicated 0-indexed column.
in Query at line 1485
array
pairs(string $key, string $value)
Executes a SELECT query and returns an array where the first column is used as keys and the second as values.
in Query at line 1500
protected Generator
fetchYield(mixed ...$fetchMode)
Executes a SELECT query and returns a generator that lets you iterate over the results.
at line 524
Generator
yield()
Returns a generator that lets you iterate over the results.
in Query at line 1522
protected int
paginationCount()
Returns the number of records that the query will return.
at line 38
ResultSet
paginate($itemsPerPage = null, array $options = [])
at line 535
batch(Closure $processor, int $batchSize = 1000, int $offsetStart = 0, int|null $offsetEnd = null)
Fetches data in batches and passes them to the processor closure.
at line 548
protected mixed
aggregate(string $function, string|array $column)
Sets the selected column of the query to the chosen aggreate.
Executes the query and returns the result if not in subquery context.
in Query at line 1631
mixed
min(string $column)
Returns the minimum value for the chosen column.
in Query at line 1642
mixed
max(string $column)
Returns the maximum value for the chosen column.
in Query at line 1653
mixed
sum(string $column)
Returns sum of all the values in the chosen column.
in Query at line 1664
mixed
avg(string $column)
Returns the average value for the chosen column.
in Query at line 1675
int
count(string $column = '*')
Returns the number of rows.
in Query at line 1686
int
countDistinct(string|array $column)
Returns the number of distinct values of the chosen column.
at line 117
bool
insert(array $values = [])
Inserts data into the chosen table.
in Query at line 1711
int|false
insertAndGetId(array $values, string $primaryKey = 'id')
Inserts data into the chosen table and returns the auto increment id.
at line 145
int
update(array $values)
Updates data from the chosen table.
at line 173
int
increment(string $column, int $increment = 1)
Increments column value.
at line 195
int
decrement(string $column, int $decrement = 1)
Decrements column value.
at line 217
int
delete()
Deletes data from the chosen table.
at line 96
ORM
getModel()
Returns the model.
at line 245
ORM|null
get(int|string $id, array $columns = [])
Returns a record using the value of its primary key.
at line 261
$this
including(string|array|false $includes)
Adds relations to eager load.
at line 303
$this
excluding(string|array|true $excludes)
Removes relations to eager load.
at line 338
protected array
parseRelationCountName(string $relation)
Parses the count relation name and returns an array consisting of the relation name and the chosen alias.
at line 356
$this
withCountOf(string|array $relations)
Adds subqueries that count the number of related records for the chosen relations.
at line 393
protected ORM
hydrateModel(array $result)
Returns a hydrated model.
at line 405
protected array
parseIncludes()
Parses includes.
at line 442
protected
loadIncludes(array $results)
Load includes.
at line 460
protected array
hydrateModelsAndLoadIncludes(mixed $results)
Returns hydrated models.
at line 566
$this
scope(string $scope, mixed ...$arguments)
Calls a scope method on the model.