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
Define a one-to-one 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.
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.