MorphTo
класс MorphTo расширяет BelongsTo (View source)
Трейты
| SupportsDefaultModels |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый булево значение | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический защищённый массив | $morphMap | Массив для сопоставления имён классов с их именами морфизма в базе данных. | из Relation |
| защищённый Closure|массив|булево значение | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | из SupportsDefaultModels |
| защищённый | $child | Экземпляр дочерней модели отношения. | из BelongsTo |
| защищённый строка | $foreignKey | Внешний ключ родительской модели. | из BelongsTo |
| защищённый строка | $ownerKey | Связанный ключ в родительской модели. | из BelongsTo |
| защищённый строка | $relation | Имя отношения. | из BelongsTo |
| статический защищённый целое число | $selfJoinCount | Количество самосвязей. | из BelongsTo |
| защищённый строка | $morphType | Тип полиморфного отношения. | |
| защищённый Collection | $models | Модели, чьи отношения загружаются с помощью eager loading. | |
| защищённый массив | $dictionary | Все модели, индексированные по идентификатору. | |
| защищённый массив | $macroBuffer | Буфер динамических вызовов макросов запроса. |
Методы
| static void | macro(string $name, callable $macro) Зарегистрировать пользовательский макрос. | 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() Получить результаты связи. | |
| 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() Принудительно клонировать базовый запрос при клонировании. | from Relation |
| Model | newRelatedInstanceFor(Model $parent) Создать новый связанный экземпляр для данной модели. | from SupportsDefaultModels |
| $this | withDefault(Closure|array|bool $callback = true) Возвращает новый экземпляр модели в случае, если отношения не существуют. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent) Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
| массив | getEagerModelKeys(массив $models) Собрать ключи из массива связанных моделей. | из BelongsTo |
| смешанный тип | update(массив $attributes) Обновить родительскую модель в отношении. | из BelongsTo |
| Модель | associate(Модель|int|string $model) Связать экземпляр модели с указанным родителем. | |
| Модель | dissociate() Отвязать ранее связанную модель от указанного родителя. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный тип $columns = ['*']) Добавить ограничения для запроса отношения на том же столе. | из BelongsTo |
| строка | getRelationCountHash() Получить хэш таблицы соединения отношения. | из BelongsTo |
| булево | relationHasIncrementingId() Определить, имеет ли связанная модель идентификатор с автоинкрементом. | из 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 bool hasMacro(строка $name)
Проверка, зарегистрирован ли макрос.
static смешанный тип __callStatic(строка $method, массив $parameters)
Динамическая обработка вызовов класса.
смешанный тип __call(строка $method, массив $parameters)
Обработка динамических вызовов метода отношения.
void __construct(Билдер $query, Модель $parent, строка $foreignKey, строка $ownerKey, строка $type, строка $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-билдера запросов.
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)
Установить или получить морф-схему для полиморфных отношений.
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()
Определить, имеет ли связанная модель идентификатор с автоматическим увеличением.
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, Коллекция $results)
Сопоставить результаты для данного типа с их родителями.
string getMorphType()
Получить имя внешнего ключа "type".
array getDictionary()
Получить словарь, используемый отношением.
protected Построитель replayMacros(Построитель $query)
Повторить сохраненные вызовы макросов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Relations/MorphTo.html