CanBeOneOfMany
trait CanBeOneOfMany
Properties
| protected bool | $isOneOfMany | Determines whether the relationship is one-of-many. |
|
| protected string | $relationName | The name of the relationship. |
|
| protected Builder<mixed>|null | $oneOfManySubQuery | The one of many inner join subselect query builder instance. |
Methods
Add constraints for inner join subselect for one of many relationships.
Get the columns the determine the relationship groups.
Add join query constraints for one of many relationships.
Indicate that the relation is the latest single result of a larger one-to-many relationship.
Indicate that the relation is the oldest single result of a larger one-to-many relationship.
Get the default alias for the one of many inner join clause.
Get a new query for the related model, grouping the query by the given column, often the foreign key of the relationship.
Add the join subquery to the given query on the given column and the relationship's foreign key.
Merge the relationship query joins to the given query builder.
Get the query builder that will contain the relationship constraints.
Get the one of many inner join subselect builder instance.
Get the qualified column name for the one-of-many relationship using the subselect join query's alias.
Qualify related column using the related table name if it is not already qualified.
Guess the "hasOne" relationship's name via backtrace.
Determine whether the relationship is a one-of-many relationship.
Get the name of the relationship.
Details
at line 38
abstract void
addOneOfManySubQueryConstraints(Builder $query, string|null $column = null, string|null $aggregate = null)
Add constraints for inner join subselect for one of many relationships.
at line 43
abstract array|string
getOneOfManySubQuerySelectColumns()
Get the columns the determine the relationship groups.
at line 48
abstract void
addOneOfManyJoinSubQueryConstraints(JoinClause $join)
Add join query constraints for one of many relationships.
at line 57
CanBeOneOfMany
ofMany(string|array|null $column = 'id', string|Closure|null $aggregate = 'MAX', string|null $relation = null)
Indicate that the relation is a single result of a larger one-to-many relationship.
at line 137
CanBeOneOfMany
latestOfMany(string|array|null $column = 'id', string|null $relation = null)
Indicate that the relation is the latest single result of a larger one-to-many relationship.
at line 149
CanBeOneOfMany
oldestOfMany(string|array|null $column = 'id', string|null $relation = null)
Indicate that the relation is the oldest single result of a larger one-to-many relationship.
at line 159
protected string
getDefaultOneOfManyJoinAlias(string $relation)
Get the default alias for the one of many inner join clause.
at line 172
protected Builder
newOneOfManySubQuery(string|array $groupBy, array|null $columns = null, string|null $aggregate = null)
Get a new query for the related model, grouping the query by the given column, often the foreign key of the relationship.
at line 208
protected void
addOneOfManyJoinSubQuery(Builder $parent, Builder $subQuery, array $on)
Add the join subquery to the given query on the given column and the relationship's foreign key.
at line 228
protected void
mergeOneOfManyJoinsTo(Builder $query)
Merge the relationship query joins to the given query builder.
at line 240
protected Builder
getRelationQuery()
Get the query builder that will contain the relationship constraints.
at line 252
Builder|null
getOneOfManySubQuery()
Get the one of many inner join subselect builder instance.
at line 260
string
qualifySubSelectColumn(string $column)
Get the qualified column name for the one-of-many relationship using the subselect join query's alias.
at line 268
protected string
qualifyRelatedColumn(string $column)
Qualify related column using the related table name if it is not already qualified.
at line 276
protected string
guessRelationship()
Guess the "hasOne" relationship's name via backtrace.
at line 284
bool
isOneOfMany()
Determine whether the relationship is a one-of-many relationship.
at line 292
string
getRelationName()
Get the name of the relationship.