HasRelationships
trait HasRelationships (View source)
Properties
protected array | $relations | The loaded relationships for the model. | |
protected array | $touches | The relationships that should be touched on save. | |
static array | $manyMethods | The many to many relationship methods. |
Methods
HasOne | hasOne(string $related, string|null $foreignKey = null, string|null $localKey = null) Define a one-to-one relationship. | |
HasOne | newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey) Instantiate a new HasOne relationship. | |
HasOneThrough | hasOneThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null) Define a has-one-through relationship. | |
HasOneThrough | newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey) Instantiate a new HasOneThrough relationship. | |
MorphOne | morphOne(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null) Define a polymorphic one-to-one relationship. | |
MorphOne | newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey) Instantiate a new MorphOne relationship. | |
BelongsTo | belongsTo(string $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null) Define an inverse one-to-one or many relationship. | |
BelongsTo | newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation) Instantiate a new BelongsTo relationship. | |
MorphTo | morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null) Define a polymorphic, inverse one-to-one or many relationship. | |
MorphTo | morphEagerTo(string $name, string $type, string $id, string $ownerKey) Define a polymorphic, inverse one-to-one or many relationship. | |
MorphTo | morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey) Define a polymorphic, inverse one-to-one or many relationship. | |
MorphTo | newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation) Instantiate a new MorphTo relationship. | |
static string | getActualClassNameForMorph(string $class) Retrieve the actual class name for a given morph class. | |
string | guessBelongsToRelation() Guess the "belongs to" relationship name. | |
HasMany | hasMany(string $related, string|null $foreignKey = null, string|null $localKey = null) Define a one-to-many relationship. | |
HasMany | newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey) Instantiate a new HasMany relationship. | |
HasManyThrough | hasManyThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null) Define a has-many-through relationship. | |
HasManyThrough | newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey) Instantiate a new HasManyThrough relationship. | |
MorphMany | morphMany(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null) Define a polymorphic one-to-many relationship. | |
MorphMany | newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey) Instantiate a new MorphMany relationship. | |
BelongsToMany | belongsToMany(string $related, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null) Define a many-to-many relationship. | |
BelongsToMany | newBelongsToMany(Builder $query, Model $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null) Instantiate a new BelongsToMany relationship. | |
MorphToMany | morphToMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, bool $inverse = false) Define a polymorphic many-to-many relationship. | |
MorphToMany | newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false) Instantiate a new MorphToMany relationship. | |
MorphToMany | morphedByMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null) Define a polymorphic, inverse many-to-many relationship. | |
string|null | guessBelongsToManyRelation() Get the relationship name of the belongsToMany relationship. | |
string | joiningTable(string $related, Model|null $instance = null) Get the joining table name for a many-to-many relation. | |
string | joiningTableSegment() Get this model's half of the intermediate table name for belongsToMany relationships. | |
bool | touches(string $relation) Determine if the model touches a given relation. | |
void | touchOwners() Touch the owning relations of the model. | |
array | getMorphs(string $name, string $type, string $id) Get the polymorphic relationship columns. | |
string | getMorphClass() Get the class name for polymorphic relations. | |
mixed | newRelatedInstance(string $class) Create a new model instance for a related model. | |
array | getRelations() Get all the loaded relations for the instance. | |
mixed | getRelation(string $relation) Get a specified relationship. | |
bool | relationLoaded(string $key) Determine if the given relation is loaded. | |
$this | setRelation(string $relation, mixed $value) Set the given relationship on the model. | |
$this | unsetRelation(string $relation) Unset a loaded relationship. | |
$this | setRelations(array $relations) Set the entire relations array on the model. | |
$this | withoutRelations() Duplicate the instance and unset all the loaded relations. | |
$this | unsetRelations() Unset all the loaded relations for the instance. | |
array | getTouchedRelations() Get the relationships that are touched on save. | |
$this | setTouchedRelations(array $touches) Set the relationships that are touched on save. |
Details
HasOne hasOne(string $related, string|null $foreignKey = null, string|null $localKey = null)
Define a one-to-one relationship.
protected HasOne newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasOne relationship.
HasOneThrough hasOneThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null)
Define a has-one-through relationship.
protected HasOneThrough newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Instantiate a new HasOneThrough relationship.
MorphOne morphOne(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
Define a polymorphic one-to-one relationship.
protected MorphOne newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphOne relationship.
BelongsTo belongsTo(string $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null)
Define an inverse one-to-one or many relationship.
protected BelongsTo newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)
Instantiate a new BelongsTo relationship.
MorphTo morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo morphEagerTo(string $name, string $type, string $id, string $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)
Instantiate a new MorphTo relationship.
static string getActualClassNameForMorph(string $class)
Retrieve the actual class name for a given morph class.
protected string guessBelongsToRelation()
Guess the "belongs to" relationship name.
HasMany hasMany(string $related, string|null $foreignKey = null, string|null $localKey = null)
Define a one-to-many relationship.
protected HasMany newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasMany relationship.
HasManyThrough hasManyThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null)
Define a has-many-through relationship.
protected HasManyThrough newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Instantiate a new HasManyThrough relationship.
MorphMany morphMany(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
Define a polymorphic one-to-many relationship.
protected MorphMany newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphMany relationship.
BelongsToMany belongsToMany(string $related, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)
Define a many-to-many relationship.
protected BelongsToMany newBelongsToMany(Builder $query, Model $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null)
Instantiate a new BelongsToMany relationship.
MorphToMany morphToMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, bool $inverse = false)
Define a polymorphic many-to-many relationship.
protected MorphToMany newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false)
Instantiate a new MorphToMany relationship.
MorphToMany morphedByMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null)
Define a polymorphic, inverse many-to-many relationship.
protected string|null guessBelongsToManyRelation()
Get the relationship name of the belongsToMany relationship.
string joiningTable(string $related, Model|null $instance = null)
Get the joining table name for a many-to-many relation.
string joiningTableSegment()
Get this model's half of the intermediate table name for belongsToMany relationships.
bool touches(string $relation)
Determine if the model touches a given relation.
void touchOwners()
Touch the owning relations of the model.
protected array getMorphs(string $name, string $type, string $id)
Get the polymorphic relationship columns.
string getMorphClass()
Get the class name for polymorphic relations.
protected mixed newRelatedInstance(string $class)
Create a new model instance for a related model.
array getRelations()
Get all the loaded relations for the instance.
mixed getRelation(string $relation)
Get a specified relationship.
bool relationLoaded(string $key)
Determine if the given relation is loaded.
$this setRelation(string $relation, mixed $value)
Set the given relationship on the model.
$this unsetRelation(string $relation)
Unset a loaded relationship.
$this setRelations(array $relations)
Set the entire relations array on the model.
$this withoutRelations()
Duplicate the instance and unset all the loaded relations.
$this unsetRelations()
Unset all the loaded relations for the instance.
array getTouchedRelations()
Get the relationships that are touched on save.
$this setTouchedRelations(array $touches)
Set the relationships that are touched on save.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/6.x/Illuminate/Database/Eloquent/Concerns/HasRelationships.html