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