MorphTo
класс MorphTo расширяет BelongsTo (View source)
Свойства
| SupportsDefaultModels | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| защищённый Closure|массив|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | из SupportsDefaultModels |
| защищённый Model | $child | Экземпляр дочерней модели отношения. | из BelongsTo |
| защищённый строка | $foreignKey | Внешний ключ родительской модели. | из BelongsTo |
| защищённый строка | $ownerKey | Связанный ключ в родительской модели. | из BelongsTo |
| защищённый строка | $relationName | Имя отношения. | из BelongsTo |
| статический защищённый int | $selfJoinCount | Количество самосоединений. | из BelongsTo |
| защищённый строка | $morphType | Тип полиморфного отношения. | |
| защищённый Collection | $models | Модели, отношения которых загружаются жадно. | |
| защищённый массив | $dictionary | Все модели, индексированные по ID. | |
| защищённый массив | $macroBuffer | Буфер динамических вызовов макросов запроса. | |
| защищённый массив | $morphableEagerLoads | Карта отношений для загрузки каждого отдельного типа морфа. | |
| защищённый массив | $morphableEagerLoadCounts | Карта подсчётов отношений для загрузки каждого отдельного типа морфа. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Переадресовать вызов метода заданному объекту. | из 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 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)
Установить ограничения для ленивой загрузки отношения. | |
| array | initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей. | из BelongsTo |
| array | match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родителями. | |
| mixed | getResults()
Получить результаты отношения. | из BelongsTo |
| Collection | getEager()
Получить результаты отношения. | |
| Collection | get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select». | из Relation |
| void | touch()
Обновить все связанные модели для отношения. | |
| int | rawUpdate(array $attributes = [])
Выполнить необработанное обновление для основного запроса. | из Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношения. | из Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения. | из BelongsTo |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | из Relation |
| Model | getParent()
Получить родительскую модель отношения. | из 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 |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить морф-отображение для полиморфных отношений. | из Relation |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Relation |
| статический string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone()
Принудительно клонировать базовый билдер запросов при клонировании. | из Relation |
| Модель | newRelatedInstanceFor(Модель $parent)
Создать новую связанную сущность для заданной модели. | |
| $this | withDefault(Closure|массив|bool $callback = true)
Возвращает новый экземпляр модели в случае отсутствия связи. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
| массив | getEagerModelKeys(массив $models)
Собрать ключи из массива связанных моделей. | из BelongsTo |
| Модель | associate(Модель|int|string $model)
Связать экземпляр модели с заданным родителем. | |
| Модель | dissociate()
Отсоединить ранее связанную модель от данного родителя. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанное $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице. | из BelongsTo |
| строка | getRelationCountHash()
Получить хеш таблицы объединения отношений. | из BelongsTo |
| bool | relationHasIncrementingId()
Определить, имеет ли связанная модель идентификатор с автоматическим инкрементом. | из BelongsTo |
| Модель | getChild()
Получить дочернюю сущность отношения. | из BelongsTo |
| строка | getForeignKeyName()
Получить внешний ключ отношения. | из BelongsTo |
| строка | getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ отношения. | из BelongsTo |
| строка | getOwnerKeyName()
Получить ассоциированный ключ отношения. | из BelongsTo |
| строка | getQualifiedOwnerKeyName()
Получить полностью квалифицированный ассоциированный ключ отношения. | из BelongsTo |
| строка | getRelationName()
Получить имя отношения. | из BelongsTo |
| void | buildDictionary(Коллекция $models)
Создать словарь с моделями. | |
| Коллекция | getResultsByType(строка $type)
Получить все результаты отношения для типа. | |
| массив | gatherKeysByType(строка $type)
Собрать все внешние ключи для заданного типа. | |
| Модель | createModelByType(строка $type)
Создать новый экземпляр модели по типу. | |
| void | matchToMorphParents(строка $type, Коллекция $results)
Сопоставить результаты для заданного типа с их родителями. | |
| строка | getMorphType()
Получить имя внешнего ключа "тип". | |
| массив | getDictionary()
Получить словарь, используемый отношением. | |
| MorphTo | morphWith(массив $with)
Указать, какие отношения загрузить для заданного типа морфинга. | |
| MorphTo | morphWithCount(массив $withCount)
Указать, какие подсчёты отношений загрузить для заданного типа морфинга. | |
| Билдер | replayMacros(Билдер $query)
Повторно воспроизвести сохранённые вызовы макросов на фактическом связанном экземпляре. |
Подробности
protected смешанное forwardCallTo(смешанное $object, строка $method, массив $parameters)
Переадресовать вызов метода заданному объекту.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для данного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательскую макрокоманду.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрирована ли макрокоманда.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса.
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)
Выполнить обратный вызов без ограничений для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Установить ограничения для отложенной загрузки отношения.
array initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
array match(array $models, Collection $results, string $relation)
Сопоставить загруженные с отложенной загрузкой результаты с их родителями.
mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить результаты отношения.
Вызывается через метод отложенной загрузки Eloquent query builder.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию "select".
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для базового запроса.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования отношения.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса к связи.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для связи.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить морфинг-карту для полиморфных связей.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт таблично-индексированный массив из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый конструктор запроса при клонировании.
protected Модель newRelatedInstanceFor(Модель $parent)
Создать новую связанную инстанцию для заданной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвратить новую инстанцию модели в случае, если связь не существует.
protected array getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей.
Модель dissociate()
Отсоединить ранее связанную модель от заданного родителя.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
строка getRelationCountHash()
Получить хеш таблицы соединения связи.
защищенное bool relationHasIncrementingId()
Определить, имеет ли связанная модель идентификатор с автоматическим увеличением.
Модель getChild()
Получить дочерний элемент связи.
строка getForeignKeyName()
Получить внешний ключ связи.
строка getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ связи.
строка getOwnerKeyName()
Получить связанный ключ связи.
строка getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ связи.
строка getRelationName()
Получить имя связи.
защищенное void buildDictionary(Коллекция $models)
Создать словарь с моделями.
защищенное Коллекция getResultsByType(строка $type)
Получить все результаты связи для типа.
защищенное массив gatherKeysByType(строка $type)
Собрать все внешние ключи для заданного типа.
Модель createModelByType(строка $type)
Создать новый экземпляр модели по типу.
защищенное void matchToMorphParents(строка $type, Коллекция $results)
Сопоставить результаты для заданного типа с их родителями.
строка getMorphType()
Получить имя внешнего ключа "тип".
массив getDictionary()
Получить словарь, используемый связью.
MorphTo morphWith(массив $with)
Указать, какие связи загрузить для заданного типа морф.
MorphTo morphWithCount(массив $withCount)
Указать, какие подсчеты связей загрузить для заданного типа морф.
защищенное Билдер replayMacros(Билдер $query)
Повторно воспроизвести сохраненные вызовы макросов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/7.x/Illuminate/Database/Eloquent/Relations/MorphTo.html