trait HasRelationships (View source)
protected array | $relations | The loaded relationships for the model. | |
protected array | $touches | The relationships that should be touched on save. | |
static string[] | $manyMethods | The many to many relationship methods. | |
static protected array | $relationResolvers | The relation resolver callbacks. |
static void | resolveRelationUsing(string $name, Closure $callback) Define a dynamic relation resolver. | |
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|null $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. |
Define a dynamic relation resolver.
Define a one-to-one relationship.
Instantiate a new HasOne relationship.
Define a has-one-through relationship.
Instantiate a new HasOneThrough relationship.
Define a polymorphic one-to-one relationship.
Instantiate a new MorphOne relationship.
Define an inverse one-to-one or many relationship.
Instantiate a new BelongsTo relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Instantiate a new MorphTo relationship.
Retrieve the actual class name for a given morph class.
Guess the "belongs to" relationship name.
Define a one-to-many relationship.
Instantiate a new HasMany relationship.
Define a has-many-through relationship.
Instantiate a new HasManyThrough relationship.
Define a polymorphic one-to-many relationship.
Instantiate a new MorphMany relationship.
Define a many-to-many relationship.
Instantiate a new BelongsToMany relationship.
Define a polymorphic many-to-many relationship.
Instantiate a new MorphToMany relationship.
Define a polymorphic, inverse many-to-many relationship.
Get the relationship name of the belongsToMany relationship.
Get the joining table name for a many-to-many relation.
Get this model's half of the intermediate table name for belongsToMany relationships.
Determine if the model touches a given relation.
Touch the owning relations of the model.
Get the polymorphic relationship columns.
Get the class name for polymorphic relations.
Create a new model instance for a related model.
Get all the loaded relations for the instance.
Get a specified relationship.
Determine if the given relation is loaded.
Set the given relationship on the model.
Unset a loaded relationship.
Set the entire relations array on the model.
Duplicate the instance and unset all the loaded relations.
Unset all the loaded relations for the instance.
Get the relationships that are touched on save.
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/8.x/Illuminate/Database/Eloquent/Concerns/HasRelationships.html