HasOne
class HasOne extends HasOneOrMany
Has one relation.
Constants
EAGER_LOAD_CHUNK_SIZE |
Eager load chunk size. |
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 | $paginationFactory | Pagination factory. | from Query |
protected ORM | $model | Instance of the model to hydrate. | from Query |
protected ORM | $parent | Parent record. | from Relation |
protected string | $foreignKey | Foreign key. | from Relation |
protected bool | $lazy | Lazy load related records? | from Relation |
Methods
Constructor.
Executes the closure if the compiler is of the correct class.
Adds a common table expression.
Adds a recursive common table expression.
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 JOIN 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.
Executes a SELECT query and returns the first row of the 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.
Fetches data in batches and passes them to the processor closure.
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 and returns the auto increment id.
Returns a record using the value of its primary key.
Sets the criterion used when eager loading related records.
Returns related a record from the database.
Details
in Relation at line 63
__construct(Connection $connection, ORM $parent, ORM $related, string|null $foreignKey = null)
Constructor.
in Query at line 178
__clone()
Create a fresh compiler instance when we clone the query.
in Query at line 198
$this
inSubqueryContext()
Sets the query to subquery context.
in Query at line 210
static
setPaginationFactory(PaginationFactoryInterface|Closure $factory)
Sets the pagination factory.
in Query at line 220
static PaginationFactoryInterface
getPaginationFactory()
Gets the pagination factory.
in Query at line 237
Connection
getConnection()
Returns the connection instance.
in Query at line 257
array
getCommonTableExpressions()
Returns the common set operations.
in Query at line 267
array
getSetOperations()
Returns the set operations.
in Query at line 277
mixed
getTable()
Returns the database table.
in Query at line 287
bool
isDistinct()
Is it a distict select?
in Query at line 297
array
getColumns()
Returns the columns from which we are fetching data.
in Query at line 307
array
getWheres()
Returns WHERE clauses.
in Query at line 317
array
getJoins()
Returns JOIN clauses.
in Query at line 327
array
getGroupings()
Returns GROUP BY clauses.
in Query at line 337
array
getHavings()
Returns HAVING clauses.
in Query at line 347
array
getOrderings()
Returns ORDER BY clauses.
in Query at line 357
int|null
getLimit()
Returns the limit.
in Query at line 367
int|null
getOffset()
Returns the offset.
in Query at line 377
bool|string|null
getLock()
Returns the lock.
in Query at line 387
string|null
getPrefix()
Returns the prefix.
in Query at line 399
$this
forCompiler(string $compilerClass, Closure $query)
Executes the closure if the compiler is of the correct class.
in Query at line 417
$this
with(string $name, array $columns = [], Closure|Query|Subquery $query)
Adds a common table expression.
in Query at line 442
$this
withRecursive(string $name, array $columns = [], Closure|Query|Subquery $query)
Adds a recursive common table expression.
in Query at line 456
protected $this
setOperation(Closure|Query|Subquery $query, string $operation)
Adds a set operation.
in Query at line 511
$this
intersectAll(Closure|Query|Subquery $query)
Adds a INTERSECT ALL operation.
in Query at line 544
$this
table(null|string|Closure|Subquery|Raw $table)
Sets table we want to query.
in Query at line 584
$this
select(array $columns)
Sets the columns we want to select.
in Query at line 597
$this
selectRaw(string $sql)
Sets the columns we want to select using raw SQL.
in Query at line 609
$this
distinct()
Select distinct?
in Query at line 625
$this
where(string|array|Closure $column, string|null $operator = null, mixed $value = null, string $separator = 'AND')
Adds a WHERE clause.
in Query at line 664
$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 689
$this
orWhere(string|array|Closure $column, string|null $operator = null, mixed $value = null)
Adds a OR WHERE clause.
in Query at line 702
$this
orWhereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null)
Adds a raw OR WHERE clause.
in Query at line 716
$this
whereDate(string $column, string $operator, string|DateTimeInterface $date, string $separator = 'AND')
Adds a date comparison clause.
in Query at line 739
$this
orWhereDate(string $column, string $operator, string|DateTimeInterface $date)
Adds a date comparison clause.
in Query at line 753
$this
whereColumn(string|array $column1, string $operator, string|array $column2, string $separator = 'AND')
Adds a column comparison clause.
in Query at line 775
$this
orWhereColumn(string|array $column1, string $operator, string|array $column2)
Adds a column comparison clause.
in Query at line 790
$this
between(mixed $column, mixed $value1, mixed $value2, string $separator = 'AND', bool $not = false)
Adds a BETWEEN clause.
in Query at line 813
$this
orBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR BETWEEN clause.
in Query at line 826
$this
notBetween(mixed $column, mixed $value1, mixed $value2)
Adds a NOT BETWEEN clause.
in Query at line 839
$this
orNotBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR NOT BETWEEN clause.
in Query at line 854
$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 876
orBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 888
notBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 900
orNotBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 914
$this
in(mixed $column, array|Raw|Closure|Subquery $values, string $separator = 'AND', bool $not = false)
Adds a IN clause.
in Query at line 944
$this
orIn(mixed $column, mixed $values)
Adds a OR IN clause.
in Query at line 956
$this
notIn(mixed $column, mixed $values)
Adds a NOT IN clause.
in Query at line 968
$this
orNotIn(mixed $column, mixed $values)
Adds a OR NOT IN clause.
in Query at line 981
$this
isNull(mixed $column, string $separator = 'AND', bool $not = false)
Adds a IS NULL clause.
in Query at line 1000
$this
orIsNull(mixed $column)
Adds a OR IS NULL clause.
in Query at line 1011
$this
isNotNull(mixed $column)
Adds a IS NOT NULL clause.
in Query at line 1022
$this
orIsNotNull(mixed $column)
Adds a OR IS NOT NULL clause.
in Query at line 1035
$this
exists(Closure|Subquery $query, string $separator = 'AND', bool $not = false)
Adds a EXISTS clause.
in Query at line 72
$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 1132
$this
joinRaw(string $table, string $column1, string $operator, string $raw, string $type = 'INNER')
Adds a raw JOIN clause.
in Query at line 1146
$this
leftJoin(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null)
Adds a LEFT OUTER JOIN clause.
in Query at line 1160
$this
leftJoinRaw(string $table, string $column1, string $operator, string $raw)
Adds a raw LEFT OUTER JOIN clause.
in Query at line 1171
$this
groupBy(string|array $columns)
Adds a GROUP BY clause.
in Query at line 1187
$this
having(string $column, string $operator, mixed $value, string $separator = 'AND')
Adds a HAVING clause.
in Query at line 1209
$this
havingRaw(string $raw, string $operator, mixed $value, string $separator = 'AND')
Adds a raw HAVING clause.
in Query at line 1222
$this
orHaving(string $column, string $operator, mixed $value)
Adds a OR HAVING clause.
in Query at line 1235
$this
orHavingRaw(string $raw, string $operator, mixed $value)
Adds a raw OR HAVING clause.
in Query at line 1247
$this
orderBy(string|array $columns, string $order = 'ASC')
Adds a ORDER BY clause.
in Query at line 1265
$this
orderByRaw(string $raw, string $order = 'ASC')
Adds a raw ORDER BY clause.
in Query at line 1276
$this
ascending(string|array $columns)
Adds an ascending ORDER BY clause.
in Query at line 1287
$this
ascendingRaw(string $raw)
Adds a raw ascending ORDER BY clause.
in Query at line 1298
$this
descending(string|array $columns)
Adds a descending ORDER BY clause.
in Query at line 1309
$this
descendingRaw(string $raw)
Adds a raw descending ORDER BY clause.
in Query at line 1319
$this
clearOrderings()
Clears the ordering clauses.
in Query at line 1332
$this
limit(int $limit)
Adds a LIMIT clause.
in Query at line 1345
$this
offset(int $offset)
Adds a OFFSET clause.
in Query at line 1358
$this
lock(bool|string $lock = true)
Enable lock.
in Query at line 1370
$this
sharedLock()
Enable shared lock.
in Query at line 1381
$this
prefix(string $prefix)
Adds a query prefix.
in Query at line 1394
protected mixed
fetchFirst(mixed ...$fetchMode)
Executes a SELECT query and returns the first row of the result set.
in Relation at line 171
mixed
first()
Returns a single record from the database.
in Query at line 1429
protected array|ResultSet
fetchAll(bool $returnResultSet, mixed ...$fetchMode)
Executes a SELECT query and returns an array containing all of the result set rows.
in Query at line 1454
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 1472
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 1491
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 1506
protected Generator
fetchYield(mixed ...$fetchMode)
Executes a SELECT query and returns a generator that lets you iterate over the results.
in Query at line 1528
protected int
paginationCount()
Returns the number of records that the query will return.
in Query at line 448
batch(Closure $processor, int $batchSize = 1000, int $offsetStart = 0, int|null $offsetEnd = null)
Fetches data in batches and passes them to the processor closure.
in Query at line 1616
protected array|void
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 1634
mixed
min(string $column)
Returns the minimum value for the chosen column.
in Query at line 1645
mixed
max(string $column)
Returns the maximum value for the chosen column.
in Query at line 1656
mixed
sum(string $column)
Returns sum of all the values in the chosen column.
in Query at line 1667
mixed
avg(string $column)
Returns the average value for the chosen column.
in Query at line 1678
int
count(string $column = '*')
Returns the number of rows.
in Query at line 1689
int
countDistinct(string|array $column)
Returns the number of distinct values of the chosen column.
in Query at line 85
bool
insert(array $values = [])
Inserts data into the chosen table.
in Query at line 1714
int|bool
insertAndGetId(array $values, string $primaryKey = 'id')
Inserts data into the chosen table and returns the auto increment id.
in Query at line 113
int
update(array $values)
Updates data from the chosen table.
in Query at line 141
int
increment(string $column, int $increment = 1)
Increments column value.
in Query at line 163
int
decrement(string $column, int $decrement = 1)
Decrements column value.
in Query at line 185
int
delete()
Deletes data from the chosen table.
in Query at line 213
ORM
get(int|string $id, array $columns = [])
Returns a record using the value of its primary key.
in Query at line 229
$this
including(string|array|bool $includes)
Adds relations to eager load.
in Query at line 271
$this
excluding(string|array|bool $excludes)
Removes relations to eager load.
in Query at line 318
protected array
parseIncludes()
Parses includes.
in Query at line 355
protected
loadIncludes(array $results)
Load includes.
in Query at line 373
protected array
hydrateModelsAndLoadIncludes(mixed $results)
Returns hydrated models.
in Query at line 465
$this
scope(string $scope, mixed ...$arguments)
Calls a scope method on the model.
in Relation at line 79
protected string
getForeignKey()
Returns the foreign key.
in Relation at line 95
protected array
keys(array $results)
Returns the keys used to eagerly load records.
in Relation at line 110
protected
lazyCriterion()
Sets the criterion used when lazy loading related records.
in Relation at line 121
protected $this
eagerCriterion(array $keys)
Sets the criterion used when eager loading related records.
in Relation at line 136
protected ResultSet
eagerLoadChunked(array $keys)
Eager loads records in chunks.
in Relation at line 158
protected
adjustQuery()
Adjusts the query.
in HasOneOrMany at line 23
ORM
create(ORM|array $related)
Creates a related record.
at line 27
eagerLoad(array $results, string $relation, Closure|null $criteria, array $includes)
Eager loads related records and matches them with their parent records.
at line 56
ORM|false
getRelated()
Returns related a record from the database.