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