Spec-Zone.ru › Laravel 9

MorphTo

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

Свойства

InteractsWithDictionary
ComparesRelatedModels
InteractsWithDictionary
SupportsDefaultModels
ForwardsCalls
Macroable

Свойства

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

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

из Macroable
защищенный Builder $query

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

из Relation
защищенный Model $parent

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

из Relation
защищенный Model $related

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

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

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

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

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

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

Предотвращает морф отношения без карты морф.

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

Количество самосоединений.

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

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

из SupportsDefaultModels
защищенный Model $child

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

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

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

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

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

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

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

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

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

защищенный Collection $models

Модели, чьи отношения загружаются с помощью eager loading.

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

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

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

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

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

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

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

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

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

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

Методы

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

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

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

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

from ForwardsCalls
static void throwBadMethodCallException(string $method)

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

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

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

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

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

from Macroable
static bool hasMacro(string $name)

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

from Macroable
static void flushMacros()

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

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

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

from 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)

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

from Relation
void addConstraints()

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

from BelongsTo
void addEagerConstraints(array $models)

Установить ограничения для отложенной загрузки отношения.

array initRelation(array $models, string $relation)

Инициализировать отношение для набора моделей.

from BelongsTo
array match(array $models, Collection $results, string $relation)

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

mixed getResults()

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

from BelongsTo
Collection getEager()

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

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

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

from Relation
Collection get(array $columns = ['*'])

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

from Relation
void touch()

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

int rawUpdate(array $attributes = [])

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

from Relation
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

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

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

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

from BelongsTo
string getRelationCountHash(bool $incrementJoinCount = true)

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

from Relation
array getKeys(array $models, string|null $key = null)

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

from Relation
Builder getRelationQuery()

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

from Relation
Builder getQuery()

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

from Relation
Builder getBaseQuery()

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

from Relation
Builder toBase()

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

from Relation
Модель getParent()

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

из Отношения
строка getQualifiedParentKeyName()

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

из Отношения
Модель getRelated()

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

из Отношения
строка createdAt()

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

из Отношения
строка updatedAt()

Получить имя колонки "обновлено в".

из Отношения
строка relatedUpdatedAt()

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

из Отношения
строка whereInMethod(Модель $model, строка $key)

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

из Отношения
статический void requireMorphMap(bool $requireMorphMap = true)

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

из Отношения
статический bool requiresMorphMap()

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

из Отношения
статический массив enforceMorphMap(массив $map, bool $merge = true)

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

из Отношения
статический массив morphMap(массив $map = null, bool $merge = true)

Установить или получить морф-отображение для полиморфных отношений.

из Отношения
статический массив|null buildMorphMapFromModels(массив $models = null)

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

из Отношения
статический строка|null getMorphedModel(строка $alias)

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

из Отношения
void __clone()

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

из Отношения
bool is(Модель|null $model)

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

из ComparesRelatedModels
bool isNot(Модель|null $model)

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

из ComparesRelatedModels
смешанный getParentKey()

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

из ComparesRelatedModels
смешанный getRelatedKeyFrom(Модель $model)

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

из ComparesRelatedModels
bool compareKeys(смешанный $parentKey, смешанный $relatedKey)

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

из ComparesRelatedModels
смешанный getDictionaryKey(смешанный $attribute)

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

из InteractsWithDictionary
Модель newRelatedInstanceFor(Модель $parent)

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

$this withDefault(Closure|массив|bool $callback = true)

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

из SupportsDefaultModels
Модель|null getDefaultFor(Модель $parent)

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

из SupportsDefaultModels
массив getEagerModelKeys(массив $models)

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

из BelongsTo
Модель associate(Модель|int|строка|null $model)

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

Модель dissociate()

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

Модель disassociate()

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

из BelongsTo
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный $columns = ['*'])

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

из BelongsTo
bool relationHasIncrementingId()

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

из BelongsTo
Модель getChild()

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

из BelongsTo
string getForeignKeyName()

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

из BelongsTo
string getQualifiedForeignKeyName()

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

из BelongsTo
string getOwnerKeyName()

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

из BelongsTo
string getQualifiedOwnerKeyName()

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

из BelongsTo
string getRelationName()

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

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

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

Коллекция getResultsByType(string $type)

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

array gatherKeysByType(string $type, string $keyType)

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

Модель createModelByType(string $type)

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

void matchToMorphParents(string $type, Коллекция $results)

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

string getMorphType()

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

array getDictionary()

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

MorphTo morphWith(array $with)

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

MorphTo morphWithCount(array $withCount)

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

MorphTo constrain(array $callbacks)

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

Библиотека replayMacros(Библиотека $query)

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

Подробности

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

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

Параметры

mixed $object
string $method
array $parameters

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

mixed

Исключения

BadMethodCallException

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

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

Параметры

mixed $object
string $method
array $parameters

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

mixed

Исключения

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

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

Параметры

string $method

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

void

Исключения

BadMethodCallException

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

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

Параметры

string $name
object|callable $macro

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

void

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

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

Параметры

object $mixin
bool $replace

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

void

Исключения

ReflectionException

static bool hasMacro(string $name)

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

Параметры

string $name

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

bool

static void flushMacros()

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

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

void

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

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

Параметры

string $method
array $parameters

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

mixed

Исключения

BadMethodCallException
END_OF_DOCUMENT_MARKER

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)

Создание нового экземпляра связи "морф".

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

array initRelation(array $models, string $relation)

Инициализация связи для набора моделей.

Parameters

array $models
string $relation

Return Value

array

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

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

Parameters

array $models
Collection $results
string $relation

Return Value

array

mixed getResults()

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

Return Value

mixed

Collection getEager()

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

Вызывается через метод отложенной загрузки билдера Eloquent запросов.

Return Value

Collection

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

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

Parameters

array|string $columns

Return Value

Model

Exceptions

Model>
MultipleRecordsFoundException

Collection get(array $columns = ['*'])

Выполнение запроса как оператора "select".

Parameters

array $columns

Return Value

Collection

void touch()

Обновление времени последнего изменения всех связанных моделей для связи.

Return Value

void

int rawUpdate(array $attributes = [])

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

Parameters

array $attributes

Return Value

int

Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

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

Parameters

Builder $query
Builder $parentQuery

Return Value

Builder

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

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

Parameters

Builder $query
Builder $parentQuery
array|mixed $columns

Return Value

Builder

string getRelationCountHash(bool $incrementJoinCount = true)

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

Parameters

bool $incrementJoinCount

Return Value

string

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

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

Parameters

array $models
string|null $key

Return Value

array

protected Builder getRelationQuery()

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

Return Value

Builder

Билдер getQuery()

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

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

Билдер

Билдер getBaseQuery()

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

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

Билдер

Билдер toBase()

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

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

Билдер

Модель getParent()

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

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

Модель

строка getQualifiedParentKeyName()

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

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

строка

Модель getRelated()

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

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

Модель

строка createdAt()

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

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

строка

строка updatedAt()

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

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

строка

строка relatedUpdatedAt()

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

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

строка

защищённый строка whereInMethod(Модель $model, строка $key)

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

Параметры

Модель $model
строка $key

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

строка

статический пустое значение requireMorphMap(bool $requireMorphMap = true)

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

Параметры

bool $requireMorphMap

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

пустое значение

статический булево requiresMorphMap()

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

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

булево

статический массив enforceMorphMap(массив $map, bool $merge = true)

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

Параметры

массив $map
булево $merge

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

массив

статический массив morphMap(массив $map = null, bool $merge = true)

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

Параметры

массив $map
булево $merge

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

массив

статический защищённый массив|null buildMorphMapFromModels(массив $models = null)

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

Параметры

массив $models

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

массив|null

статический строка|null getMorphedModel(строка $alias)

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

Параметры

строка $alias

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

строка|null

пустое значение __clone()

Вынужденное клонирование базового билдера запросов при клонировании.

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

пустое значение

булево is(Модель|null $model)

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

Параметры

Модель|null $model

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

булево

булево isNot(Модель|null $model)

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

Параметры

Модель|null $model

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

булево

абстрактный смешанный getParentKey()

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

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

смешанный

абстрактный защищённый смешанный getRelatedKeyFrom(Модель $model)

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

Параметры

Модель $model

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

смешанный

защищённый булево compareKeys(смешанный $parentKey, смешанный $relatedKey)

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

Параметры

смешанный $parentKey
смешанный $relatedKey

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

булево

protected mixed getDictionaryKey(mixed $attribute)

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

Parameters

mixed $attribute

Return Value

mixed

Exceptions

InvalidArgumentException

protected Model newRelatedInstanceFor(Model $parent)

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

Parameters

Model $parent

Return Value

Model

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

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

Parameters

Closure|array|bool $callback

Return Value

$this

protected Model|null getDefaultFor(Model $parent)

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

Parameters

Model $parent

Return Value

Model|null

protected array getEagerModelKeys(array $models)

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

Parameters

array $models

Return Value

array

Model associate(Model|int|string|null $model)

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

Parameters

Model|int|string|null $model

Return Value

Model

Model dissociate()

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

Return Value

Model

Model disassociate()

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

Return Value

Model

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

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

Parameters

Builder $query
Builder $parentQuery
array|mixed $columns

Return Value

Builder

protected bool relationHasIncrementingId()

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

Return Value

bool

Model getChild()

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

Return Value

Model

string getForeignKeyName()

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

Return Value

string

string getQualifiedForeignKeyName()

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

Return Value

string

string getOwnerKeyName()

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

Return Value

string

string getQualifiedOwnerKeyName()

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

Return Value

string

string getRelationName()

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

Return Value

string

protected void buildDictionary(Collection $models)

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

Parameters

Collection $models

Return Value

void

protected Collection getResultsByType(string $type)

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

Parameters

string $type

Return Value

Collection

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

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

Parameters

string $type
string $keyType

Return Value

array

Model createModelByType(string $type)

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

Parameters

string $type

Return Value

Model

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

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

Параметры

string $type
Collection $results

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

void

string getMorphType()

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

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

string

array getDictionary()

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

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

array

MorphTo morphWith(array $with)

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

Параметры

array $with

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

MorphTo

MorphTo morphWithCount(array $withCount)

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

Параметры

array $withCount

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

MorphTo

MorphTo constrain(array $callbacks)

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

Параметры

array $callbacks

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

MorphTo

protected Builder replayMacros(Builder $query)

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

Параметры

Builder $query

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

Builder

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

Spec-Zone.ru

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