BelongsToMany
class BelongsToMany extends Relation (View source)
Methods
Create a new belongs to many relationship instance.
Set the base constraints on the relation query.
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.
Get the results of the relationship.
Touch all of the related models for the relationship.
Add the constraints for a relationship count query.
Add the constraints for a relationship query.
Get the name of the "created at" column.
Get the name of the "updated at" column.
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.
Chunk the results of the query.
Add the constraints for a relationship query on the same table.
Get a relationship join table hash.
Get all of the IDs for the related models.
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.
If we're touching the parent model, touch.
Get a new plain query builder for the pivot table.
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 related model's updated at column name.
Get the key for comparing against the parent key in "has" query.
Get the fully qualified foreign key for the relation.
Get the fully qualified "other key" for the relation.
Get the intermediate table for the relationship.
Get the relationship name for the relationship.
Details
at line line 81
void
__construct(
Builder $query,
Model $parent,
string $table,
string $foreignKey,
string $otherKey,
string $relationName = null)
Create a new belongs to many relationship instance.
at line line 471
void
addEagerConstraints(
array $models)
Set the constraints for an eager load of the relation.
at line line 483
array
initRelation(
array $models,
string $relation)
Initialize the relation on a set of models.
at line line 500
array
match(
array $models,
Collection $results,
string $relation)
Match the eagerly loaded results to their parents.
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 340
Builder
getRelationQuery(
Builder $query,
Builder $parent,
array|mixed $columns = array('*'))
Add the constraints for a relationship 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.
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.
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.
at line line 141
BelongsToMany
orWherePivot(
string $column,
string $operator = null,
mixed $value = null)
Set an "or where" clause for a pivot table column.
at line line 153
BelongsToMany
orWherePivotIn(
string $column,
mixed $values)
Set an "or where in" clause for a pivot table column.
at line line 164
mixed
first(
array $columns = array('*'))
Execute the query and get the first result.
at line line 179
Model|BelongsToMany
firstOrFail(
array $columns = array('*'))
Execute the query and get the first result or throw an exception.
at line line 194
Collection
get(
array $columns = array('*'))
Execute the query as a "select" statement.
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.
at line line 247
Paginator
simplePaginate(
int $perPage = null,
array $columns = array('*'),
string $pageName = 'page')
Paginate the given query into a simple paginator.
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.
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.
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.
at line line 619
Model|Collection|null
find(
mixed $id,
array $columns = array('*'))
Find a related model by its primary key.
at line line 637
Collection
findMany(
mixed $ids,
array $columns = array('*'))
Find multiple related models by their primary keys.
at line line 657
Model|Collection
findOrFail(
mixed $id,
array $columns = array('*'))
Find a related model by its primary key or throw an exception.
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.
at line line 694
Model
firstOrNew(
array $attributes)
Get the first related model record matching the attributes or instantiate it.
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.
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.
at line line 750
Model
create(
array $attributes,
array $joining = array(),
bool $touch = true)
Create a new instance of the related model.
at line line 771
array
createMany(
array $records,
array $joinings = array())
Create an array of new instances of the related models.
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.
at line line 898
int
updateExistingPivot(
mixed $id,
array $attributes,
bool $touch = true)
Update an existing pivot record on the table.
at line line 921
void
attach(
mixed $id,
array $attributes = array(),
bool $touch = true)
Attach a model to the parent.
at line line 1054
int
detach(
int|array $ids = array(),
bool $touch = true)
Detach models from the relationship.
at line line 1151
Builder
newPivotStatementForId(
mixed $id)
Get a new pivot statement for a given "other" ID.
at line line 1163
Pivot
newPivot(
array $attributes = array(),
bool $exists = false)
Create a new pivot model instance.
at line line 1176
Pivot
newExistingPivot(
array $attributes = array())
Create a new existing pivot model instance.
at line line 1187
$this
withPivot(
array|mixed $columns)
Set the columns on the pivot table to retrieve.
at line line 1203
BelongsToMany
withTimestamps(
mixed $createdAt = null,
mixed $updatedAt = null)
Specify that the pivot table has creation and update timestamps.
at line line 1246
string
getHasCompareKey()
Get the key for comparing against the parent key in "has" query.