MorphToMany
class MorphToMany extends BelongsToMany (View source)
Methods
Create a new morph to many relationship instance.
Set the constraints for an eager load of the relation.
Initialize the relation on a set of models.
Match the eagerly loaded results to their parents.
Add the constraints for a relationship count query.
Add the constraints for a relationship count query.
Set or get the morph map for polymorphic relations.
Handle dynamic method calls to the relationship.
Set a where clause for a pivot table column.
Set a "where in" clause for a pivot table column.
Set an "or where" clause for a pivot table column.
Set an "or where in" clause for a pivot table column.
Execute the query and get the first result.
Execute the query and get the first result or throw an exception.
Execute the query as a "select" statement.
Get a paginator for the "select" statement.
Paginate the given query into a simple paginator.
Add the constraints for a relationship query on the same table.
Save a new model and attach it to the parent model.
Save an array of new models and attach them to the parent model.
Find a related model by its primary key.
Find multiple related models by their primary keys.
Find a related model by its primary key or throw an exception.
Find a related model by its primary key or return new instance of the related model.
Get the first related model record matching the attributes or instantiate it.
Get the first related record matching the attributes or create it.
Create or update a related record matching the attributes, and fill it with values.
Create a new instance of the related model.
Create an array of new instances of the related models.
Sync the intermediate tables with a list of IDs or collection of models.
Update an existing pivot record on the table.
Attach a model to the parent.
Detach models from the relationship.
Get a new pivot statement for a given "other" ID.
Create a new pivot model instance.
Create a new existing pivot model instance.
Set the columns on the pivot table to retrieve.
Specify that the pivot table has creation and update timestamps.
Get the key for comparing against the parent key in "has" query.
Get the foreign key "type" name.
Get the class name of the parent model.
Details
at line line 47
void
__construct(
Builder $query,
Model $parent,
string $name,
string $table,
string $foreignKey,
string $otherKey,
string $relationName = null,
bool $inverse = false)
Create a new morph to many relationship instance.
in BelongsToMany at line line 323
void
addConstraints()
Set the base constraints on the relation query.
at line line 91
void
addEagerConstraints(
array $models)
Set the constraints for an eager load of the relation.
in BelongsToMany at line line 483
array
initRelation(
array $models,
string $relation)
Initialize the relation on a set of models.
in BelongsToMany at line line 500
array
match(
array $models,
Collection $results,
string $relation)
Match the eagerly loaded results to their parents.
in BelongsToMany at line line 547
void
touch()
Touch all of the related models for the relationship.
E.g.: Touch all roles associated with this user.
Builder
getRelationCountQuery(
Builder $query,
Builder $parent)
Add the constraints for a relationship count query.
at line line 78
Builder
getRelationQuery(
Builder $query,
Builder $parent,
array|mixed $columns = array('*'))
Add the constraints for a relationship count query.
static
mixed
noConstraints(
Closure $callback)
Run a callback with constraints disabled on the relation.
static
array
morphMap(
array $map = null,
bool $merge = true)
Set or get the morph map for polymorphic relations.
in BelongsToMany at line line 110
BelongsToMany
wherePivot(
string $column,
string $operator = null,
mixed $value = null,
string $boolean = 'and')
Set a where clause for a pivot table column.
in BelongsToMany at line line 126
BelongsToMany
wherePivotIn(
string $column,
mixed $values,
string $boolean = 'and',
bool $not = false)
Set a "where in" clause for a pivot table column.
in BelongsToMany at line line 141
BelongsToMany
orWherePivot(
string $column,
string $operator = null,
mixed $value = null)
Set an "or where" clause for a pivot table column.
in BelongsToMany at line line 153
BelongsToMany
orWherePivotIn(
string $column,
mixed $values)
Set an "or where in" clause for a pivot table column.
in BelongsToMany at line line 164
mixed
first(
array $columns = array('*'))
Execute the query and get the first result.
in BelongsToMany at line line 179
Model|BelongsToMany
firstOrFail(
array $columns = array('*'))
Execute the query and get the first result or throw an exception.
in BelongsToMany at line line 194
Collection
get(
array $columns = array('*'))
Execute the query as a "select" statement.
in BelongsToMany at line line 228
LengthAwarePaginator
paginate(
int $perPage = null,
array $columns = array('*'),
string $pageName = 'page',
int|null $page = null)
Get a paginator for the "select" statement.
in BelongsToMany at line line 247
Paginator
simplePaginate(
int $perPage = null,
array $columns = array('*'),
string $pageName = 'page')
Paginate the given query into a simple paginator.
in BelongsToMany at line line 265
bool
chunk(
int $count,
callable $callback)
Chunk the results of the query.
in BelongsToMany at line line 359
Builder
getRelationQueryForSelfJoin(
Builder $query,
Builder $parent,
array|mixed $columns = array('*'))
Add the constraints for a relationship query on the same table.
in BelongsToMany at line line 568
Collection
getRelatedIds()
Get all of the IDs for the related models.
in BelongsToMany at line line 585
Model
save(
Model $model,
array $joining = array(),
bool $touch = true)
Save a new model and attach it to the parent model.
in BelongsToMany at line line 601
array
saveMany(
Collection|array $models,
array $joinings = array())
Save an array of new models and attach them to the parent model.
in BelongsToMany at line line 619
Model|Collection|null
find(
mixed $id,
array $columns = array('*'))
Find a related model by its primary key.
in BelongsToMany at line line 637
Collection
findMany(
mixed $ids,
array $columns = array('*'))
Find multiple related models by their primary keys.
in BelongsToMany at line line 657
Model|Collection
findOrFail(
mixed $id,
array $columns = array('*'))
Find a related model by its primary key or throw an exception.
in BelongsToMany at line line 679
Collection|Model
findOrNew(
mixed $id,
array $columns = array('*'))
Find a related model by its primary key or return new instance of the related model.
in BelongsToMany at line line 694
Model
firstOrNew(
array $attributes)
Get the first related model record matching the attributes or instantiate it.
in BelongsToMany at line line 711
Model
firstOrCreate(
array $attributes,
array $joining = array(),
bool $touch = true)
Get the first related record matching the attributes or create it.
in BelongsToMany at line line 729
Model
updateOrCreate(
array $attributes,
array $values = array(),
array $joining = array(),
bool $touch = true)
Create or update a related record matching the attributes, and fill it with values.
in BelongsToMany at line line 750
Model
create(
array $attributes,
array $joining = array(),
bool $touch = true)
Create a new instance of the related model.
in BelongsToMany at line line 771
array
createMany(
array $records,
array $joinings = array())
Create an array of new instances of the related models.
in BelongsToMany at line line 791
array
sync(
Collection|array $ids,
bool $detaching = true)
Sync the intermediate tables with a list of IDs or collection of models.
in BelongsToMany at line line 898
int
updateExistingPivot(
mixed $id,
array $attributes,
bool $touch = true)
Update an existing pivot record on the table.
in BelongsToMany at line line 921
void
attach(
mixed $id,
array $attributes = array(),
bool $touch = true)
Attach a model to the parent.
in BelongsToMany at line line 1054
int
detach(
int|array $ids = array(),
bool $touch = true)
Detach models from the relationship.
in BelongsToMany at line line 1088
void
touchIfTouching()
If we're touching the parent model, touch.
in BelongsToMany at line line 1140
Builder
newPivotStatement()
Get a new plain query builder for the pivot table.
in BelongsToMany at line line 1151
Builder
newPivotStatementForId(
mixed $id)
Get a new pivot statement for a given "other" ID.
at line line 131
Pivot
newPivot(
array $attributes = array(),
bool $exists = false)
Create a new pivot model instance.
in BelongsToMany at line line 1176
Pivot
newExistingPivot(
array $attributes = array())
Create a new existing pivot model instance.
in BelongsToMany at line line 1187
$this
withPivot(
array|mixed $columns)
Set the columns on the pivot table to retrieve.
in BelongsToMany at line line 1203
BelongsToMany
withTimestamps(
mixed $createdAt = null,
mixed $updatedAt = null)
Specify that the pivot table has creation and update timestamps.
in BelongsToMany at line line 1236
string
getRelatedFreshUpdate()
Get the related model's updated at column name.
in BelongsToMany at line line 1246
string
getHasCompareKey()
Get the key for comparing against the parent key in "has" query.
in BelongsToMany at line line 1256
string
getForeignKey()
Get the fully qualified foreign key for the relation.
in BelongsToMany at line line 1266
string
getOtherKey()
Get the fully qualified "other key" for the relation.
in BelongsToMany at line line 1276
string
getTable()
Get the intermediate table for the relationship.
in BelongsToMany at line line 1286
string
getRelationName()
Get the relationship name for the relationship.