MorphTo
class MorphTo extends BelongsTo (View source)
Свойства
| protected Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static protected array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | из BelongsTo |
| protected string | $otherKey | Связанный ключ в родительской модели. | из BelongsTo |
| protected string | $relation | Имя отношения. | из BelongsTo |
| static protected int | $selfJoinCount | Количество самосоединений. | из BelongsTo |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected Collection | $models | Модели, отношения которых загружаются в режиме eager loading. | |
| protected array | $dictionary | Все модели, индексированные по ID. | |
| protected array | $macroBuffer | Буфер динамических вызовов макросов запросов. |
Методы
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $otherKey, string $type, string $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() Получить результаты отношения. | |
| Collection | getEager() Получить результаты отношения. | |
| void | touch() Обновить метки времени для всех связанных моделей в рамках отношения. | из Relation |
| int | rawUpdate(array $attributes = []) Выполнить сырое обновление с использованием базового запроса. | из Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта отношения. | из Relation |
| Builder | getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения. | из BelongsTo |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений для отношения. | из Relation |
| array | getKeys(array $models, string $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 | wrap(string $value) Оборачивание значения с использованием грамматики родительского запроса. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает массив, связанный с именами классов моделей, по таблицам. | из Relation |
| mixed | __call(string $method, array $parameters) Обработка динамических вызовов методов отношения. | |
| void | __clone() Принудительное клонирование билдера базового запроса при клонировании. | из Relation |
| Builder | getRelationQueryForSelfRelation(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | из BelongsTo |
| string | getRelationCountHash() Получить хеш для объединения таблиц отношений. | из BelongsTo |
| array | getEagerModelKeys(array $models) Собрать ключи из массива связанных моделей. | из BelongsTo |
| Model | associate(Model|int $model) Связать экземпляр модели с заданным родителем. |
| Модель | dissociate() Отсоединить ранее связанную модель от заданного родителя. | |
| mixed | update(array $attributes) Обновить родительскую модель в рамках отношения. | из BelongsTo |
| строка | getForeignKey() Получить внешний ключ отношения. | из BelongsTo |
| строка | getQualifiedForeignKey() Получить полностью квалифицированный внешний ключ отношения. | из BelongsTo |
| строка | getOtherKey() Получить связанный ключ отношения. | из BelongsTo |
| строка | getQualifiedOtherKeyName() Получить полностью квалифицированный связанный ключ отношения. | из BelongsTo |
| void | buildDictionary(Collection $models) Создать словарь с моделями. | |
| void | matchToMorphParents(string $type, Collection $results) Сопоставить результаты для данного типа с их родителями. | |
| Collection | getResultsByType(string $type) Получить все результаты отношения для типа. | |
| массив | gatherKeysByType(string $type) Собрать все внешние ключи для заданного типа. | |
| Модель | createModelByType(string $type) Создать новый экземпляр модели по типу. | |
| строка | getMorphType() Получить имя внешнего ключа "тип". | |
| массив | getDictionary() Получить словарь, используемый отношением. | |
| Билдер | replayMacros(Билдер $query) Повторить сохранённые вызовы макросов на фактическом связанном экземпляре. |
Подробности
void __construct(Билдер $query, Модель $parent, string $foreignKey, string $otherKey, string $type, string $relation)
Создать новый экземпляр отношения "морф к".
void addConstraints()
Установить базовые ограничения на запрос отношения.
void addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки отношения.
массив initRelation(array $models, string $relation)
Инициализировать отношение на наборе моделей.
массив match(array $models, Collection $results, string $relation)
Сопоставить результаты ленивой загрузки с их родителями.
mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить результаты отношения.
Вызывается через метод ленивой загрузки билдера Eloquent.
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление по основному запросу.
Билдер getRelationCountQuery(Билдер $query, Билдер $parent)
Добавить ограничения для запроса подсчёта отношения.
Билдер getRelationQuery(Билдер $query, Билдер $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовое запрошенное выражение для отношения.
Builder getBaseQuery()
Получить базовое конструктор запроса, управляющее конструктором Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели.
string wrap(string $value)
Оборачивание заданного значения с помощью грамматики родительского запроса.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить морф-отображение для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт массив с табличным ключом из имён классов моделей.
mixed __call(string $method, array $parameters)
Обработка вызовов динамических методов для отношения.
void __clone()
Принудительное клонирование базового конструктора запроса при клонировании.
Builder getRelationQueryForSelfRelation(Builder $query, Builder $parent, array|mixed $columns = ['*'])
Добавление ограничений для запроса отношения в той же таблице.
string getRelationCountHash()
Получение хэша таблицы соединения отношения.
protected array getEagerModelKeys(array $models)
Сбор ключей из массива связанных моделей.
Модель dissociate()
Отсоединить ранее связанную модель от указанного родителя.
mixed update(array $attributes)
Обновить родительскую модель в отношении.
string getForeignKey()
Получить внешний ключ отношения.
string getQualifiedForeignKey()
Получить полностью квалифицированный внешний ключ отношения.
строка getOtherKey()
Получить связанный ключ отношения.
строка getQualifiedOtherKeyName()
Получить полностью квалифицированный связанный ключ отношения.
protected void buildDictionary(Collection $models)
Создать словарь с моделями.
protected void matchToMorphParents(string $type, Collection $results)
Сопоставить результаты для данного типа с родительскими объектами.
protected Collection getResultsByType(string $type)
Получить все результаты отношения для типа.
protected array gatherKeysByType(string $type)
Собрать все внешние ключи для данного типа.
Модель createModelByType(string $type)
Создать новый экземпляр модели по типу.
строка getMorphType()
Получить имя внешнего ключа "тип".
массив getDictionary()
Получить словарь, используемый отношением.
protected Билдер replayMacros(Билдер $query)
Повторить сохраненные вызовы макросов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Relations/MorphTo.html