MorphTo
class MorphTo extends BelongsTo (View source)
Свойства
| SupportsDefaultModels |
| 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 protected 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 | Буфер динамических вызовов макросов запроса. |
Методы
| 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 = ['*']) Выполнить запрос как операцию "выбор". | 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 |
| array | getEagerModelKeys(array $models) Собрать ключи из массива связанных моделей. | из BelongsTo |
| mixed | update(array $attributes) Обновить родительскую модель в рамках отношения. | из BelongsTo |
| Модель | associate(Модель|int|string $model) Связать экземпляр модели с данным родителем. | |
| Модель | dissociate() Отделить ранее связанную модель от данного родителя. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на том же столе. | из BelongsTo |
| string | getRelationCountHash() Получить хеш таблицы объединения отношения. | из BelongsTo |
| bool | relationHasIncrementingId() Определить, имеет ли связанная модель ID с автоматическим инкрементом. | из BelongsTo |
| string | getForeignKey() Получить внешний ключ отношения. | из BelongsTo |
| string | getQualifiedForeignKey() Получить полностью квалифицированный внешний ключ отношения. | из BelongsTo |
| string | getOwnerKey() Получить связанный ключ отношения. | из BelongsTo |
| string | getQualifiedOwnerKeyName() Получить полностью квалифицированный связанный ключ отношения. | из BelongsTo |
| string | getRelation() Получить имя отношения. | из BelongsTo |
| void | buildDictionary(Коллекция $models) Сформировать словарь с моделями. | |
| Коллекция | getResultsByType(string $type) Получить все результаты отношения для типа. | |
| array | gatherKeysByType(string $type) Собрать все внешние ключи для заданного типа. | |
| Модель | createModelByType(string $type) Создать новый экземпляр модели по типу. | |
| void | matchToMorphParents(string $type, Коллекция $results) Сопоставить результаты для данного типа с их родителями. | |
| string | getMorphType() Получить имя внешнего ключа "type". | |
| array | getDictionary() Получить словарь, используемый отношением. | |
| Билдер | replayMacros(Билдер $query) Повторить хранимые вызовы макросов на фактическом связанном экземпляре. |
Подробности
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)
Создание нового экземпляра связи "морфинг".
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 = [])
Выполнение запроса на обновление с помощью SQL.
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()
Получение базового объекта Query Builder, управляющего Eloquent builder.
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(Collection $models)
Создать словарь с моделями.
защищено Collection getResultsByType(строка $type)
Получить все результаты отношения для типа.
защищено массив gatherKeysByType(строка $type)
Собрать все внешние ключи для данного типа.
Модель createModelByType(строка $type)
Создать новую модель по типу.
защищено пустое matchToMorphParents(строка $type, Collection $results)
Сопоставить результаты для данного типа с родителями.
строка getMorphType()
Получить имя внешнего ключа "тип".
массив getDictionary()
Получить словарь, используемый отношением.
защищено Builder replayMacros(Builder $query)
Повторить сохраненные макрокоманды на фактической связанной сущности.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Relations/MorphTo.html