MorphTo
класс MorphTo расширяет BelongsTo (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| ComparesRelatedModels | |
| InteractsWithDictionary | |
| SupportsDefaultModels | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | from Macroable |
| protected Builder | $query | Экземпляр Eloquent-строителя запросов. | from Relation |
| protected Model | $parent | Экземпляр родительской модели. | from Relation |
| protected Model | $related | Экземпляр связанной модели. | from Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | from Relation |
| static array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | from Relation |
| static protected bool | $requireMorphMap | Препятствует морфическим отношениям без карты морфизма. | from Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | from Relation |
| protected Closure|array|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | from SupportsDefaultModels |
| protected Model | $child | Экземпляр дочерней модели отношения. | from BelongsTo |
| protected string | $foreignKey | Внешний ключ родительской модели. | from BelongsTo |
| protected string | $ownerKey | Связанный ключ в родительской модели. | from BelongsTo |
| protected string | $relationName | Имя отношения. | from BelongsTo |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected Collection | $models | Модели, отношения которых загружаются жадно. | |
| protected array | $dictionary | Все модели, индексированные по идентификатору. | |
| protected array | $macroBuffer | Буфер динамических вызовов макросов запроса. | |
| protected array | $morphableEagerLoads | Карта отношений для загрузки для каждого отдельного типа морфизма. |
| protected массив | $morphableEagerLoadCounts | Карта подсчётов отношений для загрузки для каждого отдельного типа морфа. | |
| protected массив | $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)
Создать новый экземпляр отношения морфинг. | |
| 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()
Получить результаты отношения. | |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | из Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос как операцию «выбрать». | из 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 |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы соединения отношения. | из Relation |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения. | из Relation |
| Builder | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | из Relation |
| Builder | toBase()
Получить экземпляр базового конструктора запроса. | из Relation |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | из Отношения |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца "создано в". | из Отношения |
| строка | updatedAt()
Получить имя столбца "обновлено в". | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели. | из Отношения |
| пустое значение | whereInEager(string $whereIn, string $key, array $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей модели. | из Отношения |
| строка | whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для eager loading. | из Отношения |
| статический пустое значение | requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставлений моделей. | из Отношения |
| статическая логическая | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| статическая массив | enforceMorphMap(array $map, bool $merge = true)
Определить карту morph для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены. | из Отношения |
| статическая массив | morphMap(array $map = null, bool $merge = true)
Установить или получить карту morph для полиморфных отношений. | из Отношения |
| статическая массив|null | buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей. | из Отношения |
| статическая строка|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Принудительно клонировать базовый билдер запросов при клонировании. | из Relation |
| bool | is(Модель|null $model)
Определить, является ли модель связанным экземпляром отношения. | из ComparesRelatedModels |
| bool | isNot(Модель|null $model)
Определить, не является ли модель связанным экземпляром отношения. | из ComparesRelatedModels |
| mixed | getParentKey()
Получить значение ключа родительской модели. | из ComparesRelatedModels |
| mixed | getRelatedKeyFrom(Модель $model)
Получить значение связанного ключа модели. | из ComparesRelatedModels |
| bool | compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить родительский ключ со связанным ключом. | из ComparesRelatedModels |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, преобразовав его в строку, если необходимо. | из InteractsWithDictionary |
| Модель | newRelatedInstanceFor(Модель $parent)
Создать новый связанный экземпляр для заданной модели. | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае отсутствия отношения. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent)
Получить значение по умолчанию для данного отношения. | из SupportsDefaultModels |
| array | getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей. | из BelongsTo |
| Модель | associate(Модель|int|string|null $model)
Связать экземпляр модели с заданным родителем. | |
| Модель | dissociate()
Отвязать ранее связанную модель от заданного родителя. |
| Модель | disassociate()
Псевдоним метода "dissociate". | из BelongsTo |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса к отношениям на том же столе. | из BelongsTo |
| bool | relationHasIncrementingId()
Определить, имеет ли связанная модель автоинкрементный ID. | из BelongsTo |
| Модель | getChild()
Получить дочерний элемент отношения. | из BelongsTo |
| string | getForeignKeyName()
Получить внешний ключ отношения. | из BelongsTo |
| string | getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ отношения. | из BelongsTo |
| string | getOwnerKeyName()
Получить связанный ключ отношения. | из BelongsTo |
| string | getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ отношения. | из BelongsTo |
| mixed | getForeignKeyFrom(Модель $model)
Получить значение внешнего ключа модели. | из 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()
Получить имя внешнего ключа "type". | |
| array | getDictionary()
Получить словарь, используемый для связи. | |
| MorphTo | morphWith(array $with)
Указать, какие отношения загрузить для данного типа морфизма. | |
| MorphTo | morphWithCount(array $withCount)
Указать, какие подсчеты отношений загрузить для данного типа морфизма. | |
| MorphTo | constrain(array $callbacks)
Указать ограничения запроса для данного типа морфизма. | |
| $this | withTrashed()
Указать, что мягко удаленные модели должны быть включены в результаты. | |
| $this | withoutTrashed()
Указать, что мягко удаленные модели не должны быть включены в результаты. | |
| $this | onlyTrashed()
Указать, что только мягко удаленные модели должны быть включены в результаты. | |
| Builder | replayMacros(Builder $query)
Повторно выполнить сохраненные вызовы макросов на фактическом связанном экземпляре. |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода данному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода данному объекту, вернув $this, если переданный вызов вернул себя.
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 void flushMacros()
Очистить существующие макросы.
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-билдера запроса.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Collection get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select».
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить обновление с помощью SQL-запроса к базовому запросу.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования отношения.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Builder toBase()
Получить экземпляр базового конструктора запроса.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Model getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для загрузки заданного набора идентификаторов моделей.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для загрузки с помощью eager loading.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставления моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление morph для полиморфных отношений и потребовать явного сопоставления всех моделей, на которые ссылаются.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление morph для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создает массив с таблицами в качестве ключей из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Вынужденное клонирование основного билдера запросов при клонировании.
bool is(Модель|null $model)
Определить, является ли модель связанным экземпляром отношения.
bool isNot(Модель|null $model)
Определить, не является ли модель связанным экземпляром отношения.
abstract mixed getParentKey()
Получить значение ключа родительской модели.
abstract protected mixed getRelatedKeyFrom(Модель $model)
Получить значение связанного ключа модели.
protected bool compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить родительский ключ со связанным ключом.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке.
protected Модель newRelatedInstanceFor(Модель $parent)
Создать новый связанный экземпляр для заданной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвращает новый экземпляр модели в случае, если отношение не существует.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения.
protected array getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей.
Модель dissociate()
Отвязать ранее связанную модель от заданного родителя.
Модель disassociate()
Псевдоним метода «dissociate».
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
protected bool relationHasIncrementingId()
Определить, имеет ли связанная модель автоинкрементный идентификатор.
Модель getChild()
Получить дочерний элемент отношения.
string getForeignKeyName()
Получить внешний ключ связи.
string getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ связи.
string getOwnerKeyName()
Получить связанный ключ связи.
string getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ связи.
protected mixed getForeignKeyFrom(Model $model)
Получить значение внешнего ключа модели.
string getRelationName()
Получить имя связи.
protected void buildDictionary(Collection $models)
Создать словарь с моделями.
protected Collection getResultsByType(string $type)
Получить все результаты связи для типа.
protected array gatherKeysByType(string $type, string $keyType)
Собрать все внешние ключи для данного типа.
Model createModelByType(string $type)
Создать новый экземпляр модели по типу.
protected void matchToMorphParents(string $type, Collection $results)
Сопоставить результаты для заданного типа с их родителями.
string getMorphType()
Получить имя внешнего ключа "type".
array getDictionary()
Получить словарь, используемый в связи.
MorphTo morphWith(array $with)
Указать, какие связи загрузить для данного типа морфирования.
MorphTo morphWithCount(array $withCount)
Указать, какие подсчёты связей загрузить для данного типа морфирования.
MorphTo constrain(array $callbacks)
Указать ограничения запроса для данного типа морфирования.
$this withTrashed()
Указать, что мягко удалённые модели должны быть включены в результаты.
$this withoutTrashed()
Указать, что мягко удалённые модели не должны быть включены в результаты.
$this onlyTrashed()
Указать, что только мягко удалённые модели должны быть включены в результаты.
protected Builder replayMacros(Builder $query)
Переиграть сохранённые макросы вызовов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Database/Eloquent/Relations/MorphTo.html