HasManyPolymorphic
class HasManyPolymorphic extends HasMany
Has many polymorphic relation.
Traits
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 string | $modelClass | Class name of the model we're hydrating. | 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 |
protected string | $polymorphicType | Polymorphic type. | from HasOneOrManyPolymorphicTrait |
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.
Details
in HasOneOrManyPolymorphicTrait at line 35
__construct(Connection $connection, ORM $parent, ORM $related, string $polymorphicType)
Constructor.
in Query at line 182
__clone()
Create a fresh compiler instance when we clone the query.
in Query at line 190
protected
reset()
Resets the query to its default state.
in Query at line 215
$this
inSubqueryContext()
Sets the query to subquery context.
in Query at line 227
static
setPaginationFactory(PaginationFactoryInterface|Closure $factory)
Sets the pagination factory.
in Query at line 237
static PaginationFactoryInterface
getPaginationFactory()
Gets the pagination factory.
in Query at line 254
Connection
getConnection()
Returns the connection instance.
in Query at line 274
array
getCommonTableExpressions()
Returns the common set operations.
in Query at line 284
array
getSetOperations()
Returns the set operations.
in Query at line 294
mixed
getTable()
Returns the database table.
in Query at line 304
bool
isDistinct()
Is it a distict select?
in Query at line 314
array
getColumns()
Returns the columns from which we are fetching data.
in Query at line 324
array
getWheres()
Returns WHERE clauses.
in Query at line 334
array
getJoins()
Returns JOIN clauses.
in Query at line 344
array
getGroupings()
Returns GROUP BY clauses.
in Query at line 354
array
getHavings()
Returns HAVING clauses.
in Query at line 364
array
getOrderings()
Returns ORDER BY clauses.
in Query at line 374
int|null
getLimit()
Returns the limit.
in Query at line 384
int|null
getOffset()
Returns the offset.
in Query at line 394
bool|string|null
getLock()
Returns the lock.
in Query at line 404
string|null
getPrefix()
Returns the prefix.
in Query at line 416
$this
forCompiler(string $compilerClass, Closure $query)
Executes the closure if the compiler is of the correct class.
in Query at line 434
$this
with(string $name, array $columns = [], Closure|Query|Subquery $query)
Adds a common table expression.
in Query at line 459
$this
withRecursive(string $name, array $columns = [], Closure|Query|Subquery $query)
Adds a recursive common table expression.
in Query at line 473
protected $this
setOperation(Closure|Query|Subquery|null $query = null, string $operation)
Adds a set operation.
in Query at line 521
$this
unionAll(Closure|Query|Subquery|null $query = null)
Adds a UNION ALL operation.
in Query at line 532
$this
intersect(Closure|Query|Subquery|null $query = null)
Adds a INTERSECT operation.
in Query at line 543
$this
intersectAll(Closure|Query|Subquery|null $query = null)
Adds a INTERSECT ALL operation.
in Query at line 554
$this
except(Closure|Query|Subquery|null $query = null)
Adds a EXCEPT operation.
in Query at line 565
$this
exceptAll(Closure|Query|Subquery|null $query = null)
Adds a EXCEPT ALL operation.
in Query at line 576
$this
table(string|array|Closure|Subquery|Raw|null $table)
Sets table we want to query.
in Query at line 594
$this
from(string|array|Closure|Subquery|Raw|null $table)
Alias of Query::table().
in Query at line 605
$this
into(string|array|Closure|Subquery|Raw|null $table)
Alias of Query::table().
in Query at line 616
$this
select(array $columns)
Sets the columns we want to select.
in Query at line 629
$this
selectRaw(string $sql)
Sets the columns we want to select using raw SQL.
in Query at line 641
$this
distinct()
Select distinct?
in Query at line 657
$this
where(string|array|Closure $column, string|null $operator = null, mixed $value = null, string $separator = 'AND')
Adds a WHERE clause.
in Query at line 696
$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 721
$this
orWhere(string|array|Closure $column, string|null $operator = null, mixed $value = null)
Adds a OR WHERE clause.
in Query at line 734
$this
orWhereRaw(string|array $column, string|array|null $operator = null, string|null $raw = null)
Adds a raw OR WHERE clause.
in Query at line 748
$this
whereDate(string $column, string $operator, string|DateTimeInterface $date, string $separator = 'AND')
Adds a date comparison clause.
in Query at line 771
$this
orWhereDate(string $column, string $operator, string|DateTimeInterface $date)
Adds a date comparison clause.
in Query at line 785
$this
whereColumn(string|array $column1, string $operator, string|array $column2, string $separator = 'AND')
Adds a column comparison clause.
in Query at line 807
$this
orWhereColumn(string|array $column1, string $operator, string|array $column2)
Adds a column comparison clause.
in Query at line 822
$this
between(mixed $column, mixed $value1, mixed $value2, string $separator = 'AND', bool $not = false)
Adds a BETWEEN clause.
in Query at line 845
$this
orBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR BETWEEN clause.
in Query at line 858
$this
notBetween(mixed $column, mixed $value1, mixed $value2)
Adds a NOT BETWEEN clause.
in Query at line 871
$this
orNotBetween(mixed $column, mixed $value1, mixed $value2)
Adds a OR NOT BETWEEN clause.
in Query at line 886
$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 908
orBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 920
notBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 932
orNotBetweenDate(string $column, string|DateTimeInterface $date1, string|DateTimeInterface $date2)
Adds a date range clause.
in Query at line 946
$this
in(mixed $column, array|Raw|Closure|Subquery $values, string $separator = 'AND', bool $not = false)
Adds a IN clause.
in Query at line 976
$this
orIn(mixed $column, array|Raw|Closure|Subquery $values)
Adds a OR IN clause.
in Query at line 988
$this
notIn(mixed $column, array|Raw|Closure|Subquery $values)
Adds a NOT IN clause.
in Query at line 1000
$this
orNotIn(mixed $column, array|Raw|Closure|Subquery $values)
Adds a OR NOT IN clause.
in Query at line 1013
$this
isNull(mixed $column, string $separator = 'AND', bool $not = false)
Adds a IS NULL clause.
in Query at line 1032
$this
orIsNull(mixed $column)
Adds a OR IS NULL clause.
in Query at line 1043
$this
isNotNull(mixed $column)
Adds a IS NOT NULL clause.
in Query at line 1054
$this
orIsNotNull(mixed $column)
Adds a OR IS NOT NULL clause.
in Query at line 1067
$this
exists(Closure|Subquery $query, string $separator = 'AND', bool $not = false)
Adds a EXISTS clause.
in Query at line 81
$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 1164
$this
joinRaw(string $table, string $column1, string $operator, string $raw, string $type = 'INNER')
Adds a raw JOIN clause.
in Query at line 1178
$this
leftJoin(string $table, string|Closure $column1 = null, string $operator = null, string $column2 = null)
Adds a LEFT OUTER JOIN clause.
in Query at line 1192
$this
leftJoinRaw(string $table, string $column1, string $operator, string $raw)
Adds a raw LEFT OUTER JOIN clause.
in Query at line 1203
$this
groupBy(string|array $columns)
Adds a GROUP BY clause.
in Query at line 1219
$this
having(string $column, string $operator, mixed $value, string $separator = 'AND')
Adds a HAVING clause.
in Query at line 1241
$this
havingRaw(string $raw, string $operator, mixed $value, string $separator = 'AND')
Adds a raw HAVING clause.
in Query at line 1254
$this
orHaving(string $column, string $operator, mixed $value)
Adds a OR HAVING clause.
in Query at line 1267
$this
orHavingRaw(string $raw, string $operator, mixed $value)
Adds a raw OR HAVING clause.
in Query at line 1279
$this
orderBy(string|array $columns, string $order = 'ASC')
Adds a ORDER BY clause.
in Query at line 1297
$this
orderByRaw(string $raw, string $order = 'ASC')
Adds a raw ORDER BY clause.
in Query at line 1308
$this
ascending(string|array $columns)
Adds an ascending ORDER BY clause.
in Query at line 1319
$this
ascendingRaw(string $raw)
Adds a raw ascending ORDER BY clause.
in Query at line 1330
$this
descending(string|array $columns)
Adds a descending ORDER BY clause.
in Query at line 1341
$this
descendingRaw(string $raw)
Adds a raw descending ORDER BY clause.
in Query at line 1351
$this
clearOrderings()
Clears the ordering clauses.
in Query at line 1364
$this
limit(int $limit)
Adds a LIMIT clause.
in Query at line 1377
$this
offset(int $offset)
Adds a OFFSET clause.
in Query at line 1390
$this
lock(bool|string $lock = true)
Enable lock.
in Query at line 1402
$this
sharedLock()
Enable shared lock.
in Query at line 1413
$this
prefix(string $prefix)
Adds a query prefix.
in Query at line 1426
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 1461
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 1486
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 1504
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 1523
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 1538
protected Generator
fetchYield(mixed ...$fetchMode)
Executes a SELECT query and returns a generator that lets you iterate over the results.
in Query at line 1560
protected int
paginationCount()
Returns the number of records that the query will return.
in Query at line 457
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 1648
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 1666
mixed
min(string $column)
Returns the minimum value for the chosen column.
in Query at line 1677
mixed
max(string $column)
Returns the maximum value for the chosen column.
in Query at line 1688
mixed
sum(string $column)
Returns sum of all the values in the chosen column.
in Query at line 1699
mixed
avg(string $column)
Returns the average value for the chosen column.
in Query at line 1710
int
count(string $column = '*')
Returns the number of rows.
in Query at line 1721
int
countDistinct(string|array $column)
Returns the number of distinct values of the chosen column.
in Query at line 94
bool
insert(array $values = [])
Inserts data into the chosen table.
in Query at line 1746
int|bool
insertAndGetId(array $values, string $primaryKey = 'id')
Inserts data into the chosen table and returns the auto increment id.
in Query at line 122
int
update(array $values)
Updates data from the chosen table.
in Query at line 150
int
increment(string $column, int $increment = 1)
Increments column value.
in Query at line 172
int
decrement(string $column, int $decrement = 1)
Decrements column value.
in Query at line 194
int
delete()
Deletes data from the chosen table.
in Query at line 222
ORM
get(int|string $id, array $columns = [])
Returns a record using the value of its primary key.
in Query at line 238
$this
including(string|array|bool $includes)
Adds relations to eager load.
in Query at line 280
$this
excluding(string|array|bool $excludes)
Removes relations to eager load.
in Query at line 327
protected array
parseIncludes()
Parses includes.
in Query at line 364
protected
loadIncludes(array $results)
Load includes.
in Query at line 382
protected array
hydrateModelsAndLoadIncludes(mixed $results)
Returns hydrated models.
in Query at line 474
$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 HasOneOrManyPolymorphicTrait at line 50
ORM
create(ORM|array $related)
Creates a related record.