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 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 HasManyThrough relationship.
Define a polymorphic, inverse many-to-many relationship.
Get the relationship name of the belongs to many.
Get the joining table name for a many-to-many relation.
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 specific relationship in the model.
Set the entire relations array on the model.
Get the relationships that are touched on save.
Set the relationships that are touched on save.
Details
HasOne
hasOne(string $related, string $foreignKey = null, string $localKey = null)
Define a one-to-one relationship.
protected HasOne
newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasOne relationship.
MorphOne
morphOne(string $related, string $name, string $type = null, string $id = null, string $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 $foreignKey = null, string $ownerKey = null, string $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 $name = null, string $type = null, string $id = null)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo
morphEagerTo(string $name, string $type, string $id)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo
morphInstanceTo(string $target, string $name, string $type, string $id)
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 $foreignKey = null, string $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 $type = null, string $id = null, string $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 $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null, string $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 $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $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 $relationName = null, bool $inverse = false)
Instantiate a new HasManyThrough relationship.
MorphToMany
morphedByMany(string $related, string $name, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null)
Define a polymorphic, inverse many-to-many relationship.
protected string
guessBelongsToManyRelation()
Get the relationship name of the belongs to many.
string
joiningTable(string $related)
Get the joining table name for a many-to-many relation.
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 specific relationship in the model.
$this
setRelations(array $relations)
Set the entire relations array on the model.
array
getTouchedRelations()
Get the relationships that are touched on save.
$this
setTouchedRelations(array $touches)
Set the relationships that are touched on save.