Spec-Zone.ru › Laravel 8

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

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

защищенный массив $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
Model getParent()

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

from Relation
string getQualifiedParentKeyName()

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

из Relation
Model getRelated()

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

из Relation
string createdAt()

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

из Relation
string updatedAt()

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

из Relation
string relatedUpdatedAt()

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

из 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 map» для полиморфных отношений и потребовать явного сопоставления всех моделей, которые могут быть связаны полиморфно.

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

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

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

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

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

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

из 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
Model newRelatedInstanceFor(Model $parent)

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

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

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

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

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

из SupportsDefaultModels
array getEagerModelKeys(array $models)

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

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

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

Model dissociate()

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

Model disassociate()

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

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

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

из BelongsTo
bool relationHasIncrementingId()

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

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

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

из BelongsTo
строка getForeignKeyName()

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

из BelongsTo
строка getQualifiedForeignKeyName()

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

из BelongsTo
строка getOwnerKeyName()

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

из BelongsTo
строка getQualifiedOwnerKeyName()

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

из BelongsTo
строка getRelationName()

Получить имя связи.

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

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

Коллекция getResultsByType(строка $type)

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

массив gatherKeysByType(строка $type, строка $keyType)

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

Модель createModelByType(строка $type)

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

void matchToMorphParents(строка $type, Коллекция $results)

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

строка getMorphType()

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

массив getDictionary()

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

MorphTo morphWith(массив $with)

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

MorphTo morphWithCount(массив $withCount)

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

MorphTo constrain(массив $callbacks)

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

Билдер replayMacros(Билдер $query)

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

Подробности

protected смешанное forwardCallTo(смешанное $object, строка $method, массив $parameters)

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

Параметры

смешанное $object
строка $method
массив $parameters

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

смешанное

Исключения

BadMethodCallException

protected смешанное forwardDecoratedCallTo(смешанное $object, строка $method, массив $parameters)

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

Параметры

смешанное $object
строка $method
массив $parameters

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

смешанное

Исключения

BadMethodCallException

static protected void throwBadMethodCallException(строка $method)

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

Параметры

строка $method

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

void

Исключения

BadMethodCallException

static void macro(строка $name, object|вызываемый $macro)

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

Параметры

строка $name
object|вызываемый $macro

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

void

static void mixin(объект $mixin, bool $replace = true)

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

Параметры

объект $mixin
bool $replace

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

void

Исключения

ReflectionException

static bool hasMacro(строка $name)

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

Параметры

строка $name

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

bool

static void flushMacros()

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

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

void

static смешанное __callStatic(строка $method, массив $parameters)

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

Параметры

строка $method
массив $parameters

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

смешанное

Исключения

BadMethodCallException

смешанное __call(строка $method, массив $parameters)

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

Параметры

строка $method
массив $parameters

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

смешанное

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

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

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 query builder.

Return Value

Collection

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

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

Parameters

array|string $columns

Return Value

Model

Exceptions

ModelNotFoundException
MultipleRecordsFoundException

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

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

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

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

Return Value

Builder

Builder getQuery()

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

Return Value

Builder

Билдер getBaseQuery()

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

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

Билдер

Модель getParent()

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

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

Модель

string getQualifiedParentKeyName()

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

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

string

Модель getRelated()

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

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

Модель

string createdAt()

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

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

string

string updatedAt()

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

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

string

string relatedUpdatedAt()

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

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

string

protected string whereInMethod(Модель $model, string $key)

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

Параметры

Модель $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)

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

Параметры

array $map
bool $merge

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

array

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

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

Параметры

array $map
bool $merge

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

array

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

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

Параметры

array $models

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

array|null

static string|null getMorphedModel(string $alias)

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

Параметры

string $alias

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

string|null

void __clone()

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

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

void

bool is(Модель|null $model)

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

Параметры

Модель|null $model

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

bool

bool isNot(Модель|null $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 Модель newRelatedInstanceFor(Модель $parent)

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

Параметры

Модель $parent

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

Модель

$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

Модель associate(Модель|int|string|null $model)

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

Параметры

Модель|int|string|null $model

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

Модель

Модель dissociate()

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

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

Модель

Модель disassociate()

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

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

Модель

Библиотека getRelationExistenceQueryForSelfRelation(Библиотека $query, Библиотека $parentQuery, array|mixed $columns = ['*'])

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

Параметры

Библиотека $query
Библиотека $parentQuery
array|mixed $columns

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

Библиотека

protected bool relationHasIncrementingId()

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

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

bool

Модель getChild()

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

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

Модель

string getForeignKeyName()

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

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

string

string getQualifiedForeignKeyName()

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

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

string

string getOwnerKeyName()

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

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

string

string getQualifiedOwnerKeyName()

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

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

string

string getRelationName()

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

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

string

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

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

Параметры

Коллекция $models

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

void

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

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

Параметры

string $type

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

Коллекция

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

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

Параметры

string $type
string $keyType

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

array

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

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

Параметры

string $type

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

Модель

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

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

Параметры

string $type
Коллекция $results

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

void

string getMorphType()

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

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

string

array getDictionary()

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

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

array

MorphTo morphWith(array $with)

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

Параметры

массив $with

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

MorphTo

MorphTo morphWithCount(array $withCount)

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

Параметры

массив $withCount

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

MorphTo

MorphTo constrain(array $callbacks)

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

Параметры

массив $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/8.x/Illuminate/Database/Eloquent/Relations/MorphTo.html

Spec-Zone.ru

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