Spec-Zone.ru › Laravel 11

MorphTo

класс MorphTo расширяет BelongsTo (Просмотреть исходный код)

Трейты

InteractsWithDictionary
ComparesRelatedModels
InteractsWithDictionary
SupportsDefaultModels
ForwardsCalls
Macroable

Свойства

статический защищённый массив $macros

Зарегистрированные строковые макросы.

из Macroable
защищённый TRelatedModel> $query

Экземпляр Eloquent-строителя запросов.

из Relation
защищённый TDeclaringModel $parent

Экземпляр родительской модели.

из Relation
защищённый TRelatedModel $related

Экземпляр связанной модели.

из Relation
защищённый bool $eagerKeysWereEmpty

Указывает, должна ли неявно возвращаться пустая коллекция для загруженного с жадностью отношения.

из Relation
статический защищённый bool $constraints

Указывает, добавляет ли отношение ограничения.

из Relation
статический массив $morphMap

Массив для отображения имён классов в их имена морфий в базе данных.

из Relation
статический защищённый bool $requireMorphMap

Запрещает морфийные отношения без карты морфий.

из Relation
статический защищённый int $selfJoinCount

Количество самосвязей.

из Relation
защищённый Closure|массив|bool $withDefault

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

из SupportsDefaultModels
защищённый TDeclaringModel $child

Экземпляр дочерней модели отношения.

из BelongsTo
защищённый string $foreignKey

Внешний ключ родительской модели.

из BelongsTo
защищённый string $ownerKey

Соответствующий ключ в родительской модели.

из BelongsTo
защищённый string $relationName

Имя отношения.

из BelongsTo
защищённый string $morphType

Тип полиморфного отношения.

защищённый TDeclaringModel> $models

Модели, отношения которых загружаются с жадностью.

защищённый массив $dictionary

Все модели, индексированные по ID.

защищённый массив $macroBuffer

Буфер динамических вызовов макросов запроса.

защищённый массив $morphableEagerLoads

Карта отношений для загрузки для каждого отдельного типа морфий.

защищённый массив $morphableEagerLoadCounts

Карта подсчёта отношений для загрузки для каждого отдельного типа морфий.

защищённый массив $morphableConstraints

Карта ограничений, которые нужно применить для каждого отдельного типа морфий.

Методы

mixed forwardCallTo(mixed $object, string $method, array $parameters)

Передать вызов метода заданному объекту.

из ForwardsCalls
mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Передать вызов метода заданному объекту, возвращая $this, если перенаправленный вызов вернул себя.

из ForwardsCalls
static void throwBadMethodCallException(string $method)

Выбросить исключение плохого вызова метода для данного метода.

из ForwardsCalls
static void macro(string $name, object|callable $macro)

Зарегистрировать пользовательское макро.

из Macroable
static void mixin(object $mixin, bool $replace = true)

Добавить другой объект в класс.

из Macroable
static bool hasMacro(string $name)

Проверяет, зарегистрировано ли макро.

из Macroable
static void flushMacros()

Очистить существующие макросы.

из Macroable
static mixed __callStatic(string $method, array $parameters)

Динамически обработать вызовы класса.

из Macroable
mixed __call(string $method, array $parameters)

Обработать динамические вызовы методов к отношению.

void __construct(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)

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

static mixed noConstraints(Closure $callback)

Выполнить обратный вызов с отключенными ограничениями для отношения.

из Relation
void addConstraints()

Установить базовые ограничения для запроса отношения.

из BelongsTo
void addEagerConstraints(array $models)

Без описания

TDeclaringModel> initRelation(array $models, string $relation)

Без описания

из BelongsTo
TDeclaringModel> match(array $models, Collection $results, string $relation)

Без описания

TResult getResults()

Без описания

из BelongsTo
TRelatedModel> getEager()

Получить результаты отношения.

TRelatedModel sole(array|string $columns = ['*'])

Выполнить запрос и получить первый результат, если это единственный соответствующий элемент.

из Relation
TRelatedModel> get(array $columns = ['*'])

Выполнить запрос как операцию «выбор».

из Relation
void touch()

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

int rawUpdate(array $attributes = [])

Выполнить сырое обновление базового запроса.

из Relation
TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

Добавить ограничения для запроса подсчета отношения.

из Relation
TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Без описания

из BelongsTo
string getRelationCountHash(bool $incrementJoinCount = true)

Получить хеш таблицы соединения отношения.

из Relation
array<int,int|string> getKeys(array $models, string|null $key = null)

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

из Relation
TRelatedModel> getRelationQuery()

Получить объект сборщика запросов, который будет содержать ограничения отношения.

из Relation
TRelatedModel> getQuery()

Получить базовый запрос для отношения.

из Relation
Builder getBaseQuery()

Получить базовый объект сборщика запросов, управляющий Eloquent builder.

из Relation
Builder toBase()

Получить базовый экземпляр сборщика запросов.

из Relation
TDeclaringModel getParent()

Получить родительскую модель отношения.

из Relation
string getQualifiedParentKeyName()

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

из Relation
TRelatedModel getRelated()

Получить связанную модель отношения.

из Relation
string createdAt()

Получить имя столбца "created at".

из Relation
string updatedAt()

Получить имя столбца "updated at".

из Relation
string relatedUpdatedAt()

Получить имя столбца "updated at" связанной модели.

из Relation
void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)

Добавить ограничение whereIn для загрузки заданного набора ключей моделей.

из Relation
string whereInMethod(Model $model, string $key)

Получить имя метода "where in" для ленивой загрузки.

из Relation
static void requireMorphMap(bool $requireMorphMap = true)

Запретить использование полиморфных отношений без сопоставления моделей.

из Relation
static bool requiresMorphMap()

Определить, требуют ли полиморфные отношения явного сопоставления моделей.

из Relation
static array enforceMorphMap(array $map, bool $merge = true)

Определить карту полиморфных отношений и потребовать, чтобы все модели с morph были явно сопоставлены.

из Relation
static array morphMap(array|null $map = null, bool $merge = true)

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

из Relation
static array|null buildMorphMapFromModels(array|null $models = null)

Создает таблично-ключевой массив из имен классов моделей.

из Relation
static string|null getMorphedModel(string $alias)

Получить модель, связанную с пользовательским полиморфным типом.

из Relation
static int|string getMorphAlias(string $className)

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

из Relation
void __clone()

Принудительно клонировать базовый объект генератора запросов при клонировании.

из Relation
bool is(Model|null $model)

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

из ComparesRelatedModels
bool isNot(Model|null $model)

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

из ComparesRelatedModels
mixed getParentKey()

Получить значение ключа родительской модели.

из ComparesRelatedModels
mixed getRelatedKeyFrom(Model $model)

Получить значение ключа связанной модели.

из ComparesRelatedModels
bool compareKeys(mixed $parentKey, mixed $relatedKey)

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

из ComparesRelatedModels
mixed getDictionaryKey(mixed $attribute)

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

из InteractsWithDictionary
TRelatedModel newRelatedInstanceFor(Model $parent)

Без описания

$this withDefault(Closure|array|bool $callback = true)

Возвращает новый экземпляр модели в случае, если отношение не существует.

из SupportsDefaultModels
Model|null getDefaultFor(Model $parent)

Получить значение по умолчанию для этого отношения.

из SupportsDefaultModels
array getEagerModelKeys(array $models)

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

из BelongsTo
TDeclaringModel associate(TRelatedModel|int|string|null $model)

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

TDeclaringModel dissociate()

Отвязать ранее связанную модель от данного родителя.

TDeclaringModel disassociate()

Псевдоним метода "dissociate".

из BelongsTo
TRelatedModel> getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса отношения на той же таблице.

из BelongsTo
bool relationHasIncrementingId()

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

from BelongsTo
TDeclaringModel getChild()

Получить дочерний элемент отношения.

from BelongsTo
string getForeignKeyName()

Получить внешнее ключевое поле отношения.

from BelongsTo
string getQualifiedForeignKeyName()

Получить полностью квалифицированное внешнее ключевое поле отношения.

from BelongsTo
string getOwnerKeyName()

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

from BelongsTo
string getQualifiedOwnerKeyName()

Получить полностью квалифицированное связанное ключевое поле отношения.

from BelongsTo
mixed getForeignKeyFrom(Model $model)

Получить значение внешнего ключа модели.

from BelongsTo
string getRelationName()

Получить имя отношения.

from BelongsTo
void buildDictionary(Collection $models)

Создать словарь с моделями.

TRelatedModel> getResultsByType(string $type)

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

array gatherKeysByType(string $type, string $keyType)

Собрать все внешние ключи для заданного типа.

TRelatedModel createModelByType(string $type)

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

void matchToMorphParents(string $type, Collection $results)

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

string getMorphType()

Получить имя внешнего ключа "тип".

array getDictionary()

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

$this morphWith(array $with)

Указать, какие отношения загрузить для данного типа морфизма.

$this morphWithCount(array $withCount)

Указать, какие подсчеты отношений загрузить для данного типа морфизма.

$this constrain(array $callbacks)

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

$this withTrashed()

Указать, что мягко удалённые модели должны быть включены в результаты.

$this withoutTrashed()

Указать, что мягко удалённые модели не должны быть включены в результаты.

$this onlyTrashed()

Указать, что только мягко удалённые модели должны быть включены в результаты.

TRelatedModel> replayMacros(Builder $query)

Переиграть сохранённые вызовы макросов на фактическом связанном экземпляре.

Подробности

protected mixed forwardCallTo(mixed $object, string $method, array $parameters)

Перенаправить вызов метода на указанный объект.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Перенаправить вызов метода на указанный объект, возвращая $this, если перенаправленный вызов вернул себя.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

Выбросить исключение плохого вызова метода для данного метода.

Parameters

string $method

Return Value

void

Exceptions

BadMethodCallException

static void macro(string $name, object|callable $macro)

Зарегистрировать пользовательский макрос.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Смешать другой объект в класс.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Проверяет, зарегистрирован ли макрос.

Parameters

string $name

Return Value

bool

static void flushMacros()

Очистить существующие макросы.

Return Value

void

static mixed __callStatic(string $method, array $parameters)

Динамически обрабатывает вызовы к классу.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Обрабатывает динамические вызовы методов к отношению.

Parameters

string $method
array $parameters

Return Value

mixed

void __construct(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)

Создаёт новый экземпляр отношения morph to.

Parameters

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

Return Value

void

static mixed noConstraints(Closure $callback)

Выполняет обратный вызов без ограничений на отношение.

Parameters

Closure $callback

Return Value

mixed

void addConstraints()

Устанавливает базовые ограничения для запроса отношения.

Return Value

void

void addEagerConstraints(array $models)

Нет описания

Parameters

array $models

Return Value

void

TDeclaringModel> initRelation(array $models, string $relation)

Нет описания

Parameters

array $models
string $relation

Return Value

TDeclaringModel>

TDeclaringModel> match(array $models, Collection $results, string $relation)

Нет описания

Parameters

array $models
Collection $results
string $relation

Return Value

TDeclaringModel>

TResult getResults()

Нет описания

Return Value

TResult

TRelatedModel> getEager()

Получить результаты отношения.

Вызывается через метод eager load билдера Eloquent.

Return Value

TRelatedModel>

TRelatedModel sole(array|string $columns = ['*'])

Выполнить запрос и получить первый результат, если это единственная соответствующая запись.

Parameters

array|string $columns

Return Value

TRelatedModel

Exceptions

TRelatedModel>
MultipleRecordsFoundException

TRelatedModel> get(array $columns = ['*'])

Выполнить запрос как операцию «select».

Parameters

array $columns

Return Value

TRelatedModel>

void touch()

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

Return Value

void

int rawUpdate(array $attributes = [])

Выполнить сырое обновление для основного запроса.

Parameters

array $attributes

Return Value

int

TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

Добавить ограничения для запроса подсчёта отношения.

Parameters

Builder $query
Builder $parentQuery

Return Value

TRelatedModel>

TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Нет описания

Parameters

Builder $query
Builder $parentQuery
array|mixed $columns

Return Value

TRelatedModel>

string getRelationCountHash(bool $incrementJoinCount = true)

Получить хэш таблицы соединения отношения.

Parameters

bool $incrementJoinCount

Return Value

string

protected array<int,int|string> getKeys(array $models, string|null $key = null)

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

Parameters

array $models
string|null $key

Return Value

array<int,int|string>

protected TRelatedModel> getRelationQuery()

Получить билдер запроса, который будет содержать ограничения связи.

Значение возврата

TRelatedModel>

TRelatedModel> getQuery()

Получить базовый запрос для связи.

Значение возврата

TRelatedModel>

Builder getBaseQuery()

Получить базовый билдер запроса, управляющий билдером Eloquent.

Значение возврата

Builder

Builder toBase()

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

Значение возврата

Builder

TDeclaringModel getParent()

Получить родительскую модель связи.

Значение возврата

TDeclaringModel

string getQualifiedParentKeyName()

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

Значение возврата

string

TRelatedModel getRelated()

Получить связанную модель связи.

Значение возврата

TRelatedModel

string createdAt()

Получить имя столбца "created at".

Значение возврата

string

string updatedAt()

Получить имя столбца "updated at".

Значение возврата

string

string relatedUpdatedAt()

Получить имя столбца "updated at" связанной модели.

Значение возврата

string

protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)

Добавить ограничение whereIn для загрузки заданного набора ключей модели.

Параметры

string $whereIn
string $key
array $modelKeys
Builder|null $query

Значение возврата

void

protected string whereInMethod(Model $model, string $key)

Получить имя метода "where in" для ленивой загрузки.

Параметры

Model $model
string $key

Значение возврата

string

static void requireMorphMap(bool $requireMorphMap = true)

Предотвратить использование полиморфных связей без сопоставлений моделей.

Параметры

bool $requireMorphMap

Значение возврата

void

static bool requiresMorphMap()

Определить, требуют ли полиморфные связи явного сопоставления моделей.

Значение возврата

bool

static array enforceMorphMap(array $map, bool $merge = true)

Определить сопоставление morph для полиморфных связей и потребовать, чтобы все модели, подвергшиеся морфированию, были явно сопоставлены.

Параметры

array $map
bool $merge

Значение возврата

array

static array morphMap(array|null $map = null, bool $merge = true)

Установить или получить сопоставление morph для полиморфных связей.

Параметры

array|null $map
bool $merge

Значение возврата

array

static protected array|null buildMorphMapFromModels(array|null $models = null)

Создает таблично-ключевой массив из имен классов моделей.

Параметры

array|null $models

Значение возврата

array|null

static string|null getMorphedModel(string $alias)

Получить модель, связанную с пользовательским полиморфным типом.

Параметры

string $alias

Значение возврата

string|null

static int|string getMorphAlias(string $className)

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

Параметры

string $className

Значение возврата

int|string

void __clone()

Принудительно клонировать базовый билдер запроса при клонировании.

Значение возврата

void

bool is(Model|null $model)

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

Параметры

Model|null $model

Значение возврата

bool

bool isNot(Model|null $model)

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

Параметры

Model|null $model

Значение возврата

bool

abstract mixed getParentKey()

Получить значение ключа родительской модели.

Значение возврата

mixed

abstract protected mixed getRelatedKeyFrom(Модель $model)

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

Параметры

Модель $model

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

mixed

protected bool compareKeys(mixed $parentKey, mixed $relatedKey)

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

Параметры

mixed $parentKey
mixed $relatedKey

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

bool

protected mixed getDictionaryKey(mixed $attribute)

Получить атрибут ключа словаря — преобразовав его в строку, если необходимо.

Параметры

mixed $attribute

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

mixed

Исключения

InvalidArgumentException

protected TRelatedModel newRelatedInstanceFor(Модель $parent)

Без описания

Параметры

Модель $parent

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

TRelatedModel

$this withDefault(Closure|array|bool $callback = true)

Возвращает новый экземпляр модели в случае отсутствия отношения.

Параметры

Closure|array|bool $callback

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

$this

protected Модель|null getDefaultFor(Модель $parent)

Получить значение по умолчанию для этого отношения.

Параметры

Модель $parent

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

Модель|null

protected array getEagerModelKeys(array $models)

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

Параметры

array $models

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

array

TDeclaringModel associate(TRelatedModel|int|string|null $model)

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

Параметры

TRelatedModel|int|string|null $model

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

TDeclaringModel

TDeclaringModel dissociate()

Отвязать ранее связанную модель от заданного родителя.

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

TDeclaringModel

TDeclaringModel disassociate()

Псевдоним метода "dissociate".

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

TDeclaringModel

TRelatedModel> getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса отношения на той же таблице.

Параметры

Билдер $query
Билдер $parentQuery
array|mixed $columns

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

TRelatedModel>

protected bool relationHasIncrementingId()

Определить, имеет ли связанная модель идентификатор с автоматическим увеличением.

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

bool

TDeclaringModel getChild()

Получить дочерний элемент отношения.

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

TDeclaringModel

string getForeignKeyName()

Получить внешний ключ отношения.

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

string

string getQualifiedForeignKeyName()

Получить полностью квалифицированный внешний ключ отношения.

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

string

string getOwnerKeyName()

Получить связанный ключ отношения.

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

string

string getQualifiedOwnerKeyName()

Получить полностью квалифицированный связанный ключ отношения.

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

string

protected mixed getForeignKeyFrom(Модель $model)

Получить значение внешнего ключа модели.

Параметры

Модель $model

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

mixed

string getRelationName()

Получить имя отношения.

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

string

protected void buildDictionary(Коллекция $models)

Создать словарь с моделями.

Параметры

Коллекция $models

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

void

protected TRelatedModel> getResultsByType(string $type)

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

Параметры

string $type

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

TRelatedModel>
END_OF_DOCUMENT_MARKER

protected array gatherKeysByType(string $type, string $keyType)

Собрать все внешние ключи для данного типа.

Параметры

string $type
string $keyType

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

array

TRelatedModel createModelByType(string $type)

Создать новую модель по типу.

Параметры

string $type

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

TRelatedModel

protected void matchToMorphParents(string $type, Collection $results)

Сопоставить результаты для данного типа с их родителями.

Параметры

string $type
Collection $results

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

void

string getMorphType()

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

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

string

array getDictionary()

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

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

array

$this morphWith(array $with)

Указать, какие отношения загрузить для данного типа морфинга.

Параметры

array $with

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

$this

$this morphWithCount(array $withCount)

Указать, какие подсчеты отношений загрузить для данного типа морфинга.

Параметры

array $withCount

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

$this

$this constrain(array $callbacks)

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

Параметры

array $callbacks

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

$this

$this withTrashed()

Указать, что мягко удаленные модели должны быть включены в результаты.

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

$this

$this withoutTrashed()

Указать, что мягко удаленные модели не должны быть включены в результаты.

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

$this

$this onlyTrashed()

Указать, что только мягко удаленные модели должны быть включены в результаты.

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

$this

protected TRelatedModel> replayMacros(Builder $query)

Повторно выполнить сохраненные вызовы макросов на фактическом связанном экземпляре.

Параметры

Builder $query

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

TRelatedModel>

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

Spec-Zone.ru

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