MorphTo
class MorphTo extends BelongsTo (View source)
Свойства
| 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 |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | from Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морфизма в базе данных. | from Relation |
| protected Closure|array|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | from SupportsDefaultModels |
| protected | $child | Экземпляр дочерней модели отношения. | from BelongsTo |
| protected string | $foreignKey | Внешний ключ родительской модели. | from BelongsTo |
| protected string | $ownerKey | Ключ, ассоциированный с родительской моделью. | from BelongsTo |
| protected string | $relation | Имя отношения. | from BelongsTo |
| static protected int | $selfJoinCount | Количество самосоединений. | from BelongsTo |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected Collection | $models | Модели, отношения которых загружаются с помощью eager loading. | |
| protected array | $dictionary | Все модели, индексированные по ID. | |
| protected array | $macroBuffer | Буфер динамических вызовов макросов запросов. |
Методы
| 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) Смешать другой объект в класс. | 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) Выполнить обратный вызов без ограничений для связи. | 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() Получить результаты связи. | |
| Collection | getEager() Получить результаты связи. | |
| 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 |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый конструктор запроса, управляющий конструктором Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName() Получить полностью квалифицированное имя родительского ключа. | from Relation |
| Model | getRelated() Получить связанную модель связи. | from Relation |
| string | createdAt() Получить имя колонки "created at". | from Relation |
| string | updatedAt() Получить имя колонки "updated at". | from Relation |
| string | relatedUpdatedAt() Получить имя колонки "updated at" связанной модели. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту morph для полиморфных связей. | from Relation |
| статический массив|null | buildMorphMapFromModels(массив $models = null) Создаёт массив, индексированный по таблицам, из имён классов моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone() Вынуждает клонирование базового билдера запросов при клонировании. | из Relation |
| Модель | newRelatedInstanceFor(Модель $parent) Создать новый связанный экземпляр для заданной модели. | из SupportsDefaultModels |
| $this | withDefault(Closure|массив|булево $callback = true) Возвращает новую модель в случае, если отношение не существует. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent) Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
| массив | getEagerModelKeys(массив $models) Собрать ключи из массива связанных моделей. | из BelongsTo |
| смешанный тип | update(массив $attributes) Обновить родительскую модель в отношении. | из BelongsTo |
| Модель | associate(Модель|целое число|строка $model) Связать экземпляр модели с указанным родителем. | |
| Модель | dissociate() Отсоединить ранее связанную модель от заданного родителя. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный тип $columns = ['*']) Добавить ограничения для запроса отношения к той же таблице. | из BelongsTo |
| строка | getRelationCountHash() Получить хэш объединения таблицы отношения. | из BelongsTo |
| булево | relationHasIncrementingId() Определить, имеет ли связанная модель автоинкрементирующий ID. | из BelongsTo |
| строка | getForeignKey() Получить внешний ключ отношения. | из BelongsTo |
| строка | getQualifiedForeignKey() Получить полностью квалифицированный внешний ключ отношения. | из BelongsTo |
| строка | getOwnerKey() Получить связанный ключ отношения. | из BelongsTo |
| строка | getQualifiedOwnerKeyName() Получить полностью квалифицированный связанный ключ отношения. | из BelongsTo |
| строка | getRelation() Получить имя отношения. | из BelongsTo |
| void | buildDictionary(Коллекция $models) Создать словарь с моделями. | |
| Коллекция | getResultsByType(строка $type) Получить все результаты отношения для типа. | |
| массив | gatherKeysByType(строка $type) Собрать все внешние ключи для данного типа. | |
| Модель | createModelByType(строка $type) Создать новый экземпляр модели по типу. | |
| void | matchToMorphParents(строка $type, Коллекция $results) Сопоставить результаты для данного типа с их родителями. | |
| строка | getMorphType() Получить имя внешнего ключа "тип". | |
| массив | getDictionary() Получить словарь, используемый отношением. | |
| Билдер | replayMacros(Билдер $query) Повторно воспроизвести хранимые вызовы макросов на фактическом связанном экземпляре. |
Подробности
protected смешанный тип forwardCallTo(смешанный тип $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
static protected void throwBadMethodCallException(строка $method)
Выбросить исключение вызова неправильного метода для данного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin)
Смешать другой объект в класс.
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 $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить основное запрошенное значение для связи.
Builder getBaseQuery()
Получить основной объект-строитель запроса, управляющий объектом-строителем Eloquent.
Model getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Model getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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()
Принудительно клонировать базовый объект-строитель запроса при клонировании.
abstract protected Model newRelatedInstanceFor(Model $parent)
Создать новую связанную инстанцию для данной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвратить новую инстанцию модели в случае, если отношения не существуют.
protected Model|null getDefaultFor(Model $parent)
Получить значение по умолчанию для данного отношения.
protected array getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей.
mixed update(array $attributes)
Обновить родительскую модель в рамках связи.
Model dissociate()
Отвязать ранее связанную модель от заданного родителя.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношений на одной таблице.
string getRelationCountHash()
Получить хеш таблицы соединения отношений.
protected bool relationHasIncrementingId()
Определить, имеет ли связанная модель автоинкрементируемый ID.
string getForeignKey()
Получить внешний ключ отношения.
string getQualifiedForeignKey()
Получить полностью квалифицированный внешний ключ отношения.
string getOwnerKey()
Получить связанный ключ отношения.
string getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ отношения.
string getRelation()
Получить имя отношения.
protected void buildDictionary(Collection $models)
Создать словарь с моделями.
protected Collection getResultsByType(string $type)
Получить все результаты отношения для типа.
protected array gatherKeysByType(string $type)
Собрать все внешние ключи для заданного типа.
Модель createModelByType(string $type)
Создать новый экземпляр модели по типу.
protected void matchToMorphParents(string $type, Collection $results)
Сопоставить результаты для заданного типа с их родителями.
string getMorphType()
Получить имя внешнего ключа "тип".
array getDictionary()
Получить словарь, используемый отношением.
protected Builder replayMacros(Builder $query)
Повторить сохраненные вызовы макросов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Relations/MorphTo.html