Spec-Zone.ru › Laravel 11

HasRelationships

trait HasRelationships (View source)

Свойства

protected массив$relations

Загруженные отношения для модели.

protected массив$touches

Отношения, которые должны быть затронуты при сохранении.

статический массив строк$manyMethods

Методы отношений "многие ко многим".

статический protected массив$relationResolvers

Обратные вызовы разрешения отношений.

Методы

mixed relationResolver(string $class, string $key)

Получить динамический разрешитель отношений, если он определён или унаследован, иначе вернуть null.

static void resolveRelationUsing(string $name, Closure $callback)

Определить динамический разрешитель отношений.

TRelatedModel,$this> hasOne(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)

Определить отношение один-к-одному.

TDeclaringModel> newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)

Инициализировать новое отношение один-к-одному.

hasOneThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)

Без описания

newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)

Без описания

TRelatedModel,$this> morphOne(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)

Определить полиморфное отношение один-к-одному.

TDeclaringModel> newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)

Инициализировать новое полиморфное отношение один-к-одному.

TRelatedModel,$this> belongsTo(TRelatedModel> $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null)

Определить обратное отношение один-к-одному или один-ко-многим.

TDeclaringModel> newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)

Инициализировать новое отношение принадлежности.

Model,$this> morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null)

Определить полиморфное, обратное отношение один-к-одному или один-ко-многим.

Model,$this> morphEagerTo(string $name, string $type, string $id, string $ownerKey)

Определить полиморфное, обратное отношение один-к-одному или один-ко-многим.

Model,$this> morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey)

Определить полиморфное, обратное отношение один-к-одному или один-ко-многим.

TDeclaringModel> newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)

Инициализировать новое полиморфное отношение.

static string getActualClassNameForMorph(string $class)

Получить фактическое имя класса для заданного класса морфинга.

string guessBelongsToRelation()

Угадать имя отношения «принадлежит».

through($relationship)

Создать ожидаемое отношение «многие-ко-многим» или «один-ко-многим» через посредника.

TRelatedModel,$this> hasMany(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)

Определить отношение один-ко-многим.

TDeclaringModel> newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)

Инициализировать новое отношение «один-ко-многим».

hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)

Без описания

newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)

Без описания

TRelatedModel,$this> morphMany(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)

Определить полиморфное отношение один-ко-многим.

TDeclaringModel> newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)

Инициализировать новое полиморфное отношение «один-ко-многим».

TRelatedModel,$this> belongsToMany(TRelatedModel> $related, string|Model>|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)

Определить отношение многие-ко-многим.

TDeclaringModel> newBelongsToMany(Builder $query, Model $parent, string|Model> $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)

Инициализировать новое отношение «принадлежит многим».

TRelatedModel,$this> morphToMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null, bool $inverse = false)

Определить полиморфное отношение многие-ко-многим.

TDeclaringModel> newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false)

Инициализировать новое полиморфное отношение «многие-ко-многим».

TRelatedModel,$this> morphedByMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)

Определить полиморфное обратное отношение многие-ко-многим.

string|null guessBelongsToManyRelation()

Получить имя отношения «принадлежит многим».

string joiningTable(string $related, Model|null $instance = null)

Получить имя таблицы соединения для отношения многие-ко-многим.

string joiningTableSegment()

Получить часть имени промежуточной таблицы для отношений «принадлежит многим».

bool touches(string $relation)

Определить, касается ли модель заданное отношение.

void touchOwners()

Отметить отношения владения модели.

array getMorphs(string $name, string $type, string $id)

Получить столбцы полиморфных отношений.

string getMorphClass()

Получить имя класса для полиморфных отношений.

mixed newRelatedInstance(string $class)

Создать новый экземпляр модели для связанной модели.

mixed newRelatedThroughInstance(string $class)

Создать новый экземпляр модели для связанной модели "через" (through).

array getRelations()

Получить все загруженные отношения для экземпляра.

mixed getRelation(string $relation)

Получить указанное отношение.

bool relationLoaded(string $key)

Определить, загружено ли данное отношение.

$this setRelation(string $relation, mixed $value)

Установить данное отношение в модели.

$this unsetRelation(string $relation)

Удалить загруженное отношение.

$this setRelations(array $relations)

Установить массив отношений в модели.

$this withoutRelations()

Создать копию экземпляра и удалить все загруженные отношения.

$this unsetRelations()

Удалить все загруженные отношения для экземпляра.

array getTouchedRelations()

Получить отношения, которые затрагиваются при сохранении.

$this setTouchedRelations(array $touches)

Установить отношения, которые затрагиваются при сохранении.

Подробности

mixed relationResolver(string $class, string $key)

Получить динамический решатель отношений, если он определен или унаследован, в противном случае вернуть null.

Parameters

string $class
string $key

Return Value

mixed

static void resolveRelationUsing(string $name, Closure $callback)

Определить динамический решатель отношений.

Parameters

string $name
Closure $callback

Return Value

void

TRelatedModel,$this> hasOne(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)

Определить отношение один-к-одному.

Parameters

TRelatedModel> $related
string|null $foreignKey
string|null $localKey

Return Value

TRelatedModel,$this>

protected TDeclaringModel> newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)

Создать новый объект отношения один-к-одному.

Parameters

Builder $query
Model $parent
string $foreignKey
string $localKey

Return Value

TDeclaringModel>

hasOneThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)

Без описания

Parameters

$related
$through
$firstKey
$secondKey
$localKey
$secondLocalKey

protected newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)

Без описания

Parameters

Builder $query
Model $farParent
Model $throughParent
$firstKey
$secondKey
$localKey
$secondLocalKey

TRelatedModel,$this> morphOne(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)

Определить полиморфное отношение один-к-одному.

Parameters

TRelatedModel> $related
string $name
string|null $type
string|null $id
string|null $localKey

Return Value

TRelatedModel,$this>

protected TDeclaringModel> newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)

Создать новый объект полиморфного отношения один-к-одному.

Parameters

Builder $query
Model $parent
string $type
string $id
string $localKey

Return Value

TDeclaringModel>

TRelatedModel,$this> belongsTo(TRelatedModel> $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null)

Определить обратное отношение один-к-одному или один-ко-многим.

Parameters

TRelatedModel> $related
string|null $foreignKey
string|null $ownerKey
string|null $relation

Return Value

TRelatedModel,$this>

protected TDeclaringModel> newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)

Инициализация отношения BelongsTo.

Параметры

Builder $query
Model $child
string $foreignKey
string $ownerKey
string $relation

Возвращаемое значение

TDeclaringModel>

Model,$this> morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null)

Определение полиморфного, обратного взаимно-однозначного или множественного отношения.

Параметры

string|null $name
string|null $type
string|null $id
string|null $ownerKey

Возвращаемое значение

Model,$this>

protected Model,$this> morphEagerTo(string $name, string $type, string $id, string $ownerKey)

Определение полиморфного, обратного взаимно-однозначного или множественного отношения.

Параметры

string $name
string $type
string $id
string $ownerKey

Возвращаемое значение

Model,$this>

protected Model,$this> morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey)

Определение полиморфного, обратного взаимно-однозначного или множественного отношения.

Параметры

string $target
string $name
string $type
string $id
string $ownerKey

Возвращаемое значение

Model,$this>

protected TDeclaringModel> newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)

Инициализация отношения MorphTo.

Параметры

Builder $query
Model $parent
string $foreignKey
string $ownerKey
string $type
string $relation

Возвращаемое значение

TDeclaringModel>

static string getActualClassNameForMorph(string $class)

Получение фактического имени класса для заданного класса morph.

Параметры

string $class

Возвращаемое значение

string

protected string guessBelongsToRelation()

Угадывание имени отношения "belongs to".

Возвращаемое значение

string

through($relationship)

Создание ожидаемого отношения has-many-through или has-one-through.

Параметры

$relationship

TRelatedModel,$this> hasMany(TRelatedModel> $related, string|null $foreignKey = null, string|null $localKey = null)

Определение отношения один-ко-многим.

Параметры

TRelatedModel> $related
string|null $foreignKey
string|null $localKey

Возвращаемое значение

TRelatedModel,$this>

protected TDeclaringModel> newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)

Инициализация отношения HasMany.

Параметры

Builder $query
Model $parent
string $foreignKey
string $localKey

Возвращаемое значение

TDeclaringModel>

hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)

Без описания

Параметры

$related
$through
$firstKey
$secondKey
$localKey
$secondLocalKey

protected newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)

Без описания

Параметры

Builder $query
Model $farParent
Model $throughParent
$firstKey
$secondKey
$localKey
$secondLocalKey

TRelatedModel,$this> morphMany(TRelatedModel> $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)

Определение полиморфного отношения один-ко-многим.

Параметры

TRelatedModel> $related
string $name
string|null $type
string|null $id
string|null $localKey

Возвращаемое значение

TRelatedModel,$this>

protected TDeclaringModel> newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)

Инициализация отношения MorphMany.

Параметры

Builder $query
Model $parent
string $type
string $id
string $localKey

Возвращаемое значение

TDeclaringModel>
END_OF_DOCUMENT_MARKER

TRelatedModel,$this> belongsToMany(TRelatedModel> $related, string|Model>|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)

Определить отношение «многие ко многим».

Параметры

TRelatedModel> $related
string|Model>|null $table
string|null $foreignPivotKey
string|null $relatedPivotKey
string|null $parentKey
string|null $relatedKey
string|null $relation

Возвращаемое значение

TRelatedModel,$this>

protected TDeclaringModel> newBelongsToMany(Builder $query, Model $parent, string|Model> $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)

Инициализация нового отношения «многие ко многим».

Параметры

Builder $query
Model $parent
string|Model> $table
string $foreignPivotKey
string $relatedPivotKey
string $parentKey
string $relatedKey
string|null $relationName

Возвращаемое значение

TDeclaringModel>

TRelatedModel,$this> morphToMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null, bool $inverse = false)

Определить полиморфное отношение «многие ко многим».

Параметры

TRelatedModel> $related
string $name
string|null $table
string|null $foreignPivotKey
string|null $relatedPivotKey
string|null $parentKey
string|null $relatedKey
string|null $relation
bool $inverse

Возвращаемое значение

TRelatedModel,$this>

protected TDeclaringModel> newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false)

Инициализировать новое полиморфное отношение «многие ко многим».

Параметры

Builder $query
Model $parent
string $name
string $table
string $foreignPivotKey
string $relatedPivotKey
string $parentKey
string $relatedKey
string|null $relationName
bool $inverse

Возвращаемое значение

TDeclaringModel>

TRelatedModel,$this> morphedByMany(TRelatedModel> $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)

Определить полиморфное обратное отношение «многие ко многим».

Параметры

TRelatedModel> $related
string $name
string|null $table
string|null $foreignPivotKey
string|null $relatedPivotKey
string|null $parentKey
string|null $relatedKey
string|null $relation

Возвращаемое значение

TRelatedModel,$this>

protected string|null guessBelongsToManyRelation()

Получить имя отношения «многие ко многим».

Возвращаемое значение

string|null

string joiningTable(string $related, Model|null $instance = null)

Получить имя таблицы для соединения при отношении «многие ко многим».

Параметры

string $related
Model|null $instance

Возвращаемое значение

string

string joiningTableSegment()

Получить часть имени промежуточной таблицы для отношений «многие ко многим».

Возвращаемое значение

string

bool touches(string $relation)

Определить, затрагивает ли модель заданное отношение.

Параметры

string $relation

Возвращаемое значение

bool

void touchOwners()

Обновить связанные отношения модели.

Возвращаемое значение

void

protected array getMorphs(string $name, string $type, string $id)

Получить столбцы полиморфного отношения.

Параметры

string $name
string $type
string $id

Возвращаемое значение

array

string getMorphClass()

Получить имя класса для полиморфных отношений.

Возвращаемое значение

string

protected mixed newRelatedInstance(string $class)

Создать новый экземпляр модели для связанной модели.

Параметры

string $class

Возвращаемое значение

mixed

protected mixed newRelatedThroughInstance(string $class)

Создать новый экземпляр модели для связанной модели через посредника.

Параметры

string $class

Возвращаемое значение

mixed

array getRelations()

Получить все загруженные отношения для экземпляра.

Возвращаемое значение

array

mixed getRelation(string $relation)

Получить указанное отношение.

Параметры

string $relation

Возвращаемое значение

mixed

bool relationLoaded(string $key)

Определить, загружено ли указанное отношение.

Параметры

string $key

Возвращаемое значение

bool

$this setRelation(string $relation, mixed $value)

Установить заданное отношение для модели.

Параметры

string $relation
mixed $value

Возвращаемое значение

$this

$this unsetRelation(string $relation)

Удалить загруженное отношение.

Параметры

string $relation

Возвращаемое значение

$this

$this setRelations(array $relations)

Установить массив отношений для модели.

Параметры

array $relations

Возвращаемое значение

$this

$this withoutRelations()

Создать дубликат экземпляра и удалить все загруженные отношения.

Возвращаемое значение

$this

$this unsetRelations()

Удалить все загруженные отношения для экземпляра.

Возвращаемое значение

$this

array getTouchedRelations()

Получить отношения, которые затрагиваются при сохранении.

Возвращаемое значение

array

$this setTouchedRelations(array $touches)

Установить отношения, которые затрагиваются при сохранении.

Параметры

array $touches

Возвращаемое значение

$this

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Concerns/HasRelationships.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API