MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их морфными именами в базе данных. | из Relation |
| защищённая строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищённая строка | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| статический защищённый int | $selfJoinCount | Количество самосоединений. | из HasOneOrMany |
| защищённая строка | $morphType | Тип внешнего ключа для отношения. | |
| защищённая строка | $morphClass | Имя класса родительской модели. |
Traits
| ForwardsCalls |
| Macroable |
Методы
| 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) Динамически обрабатывает вызовы класса. | from Macroable |
| void | __construct(Builder $query, Model $parent, string $type, string $id, string $localKey) Создать новый экземпляр отношения morph one или many. | |
| static mixed | noConstraints(Closure $callback) Запустить обратный вызов с отключенными ограничениями в отношении. | from Relation |
| void | addConstraints() Установить базовые ограничения для запроса отношения. | |
| void | addEagerConstraints(array $models) Установить ограничения для нетерпеливой загрузки отношения. | |
| array | initRelation(array $models, string $relation) Инициализировать отношение в наборе моделей. | from Relation |
| array | match(array $models, Collection $results, string $relation) Сопоставить нетерпеливо загруженные результаты с их родителями. | from Relation |
| mixed | getResults() Получить результаты отношения. | from Relation |
| Collection | getEager() Получить отношение для нетерпеливой загрузки. | from Relation |
| 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 = ['*']) Получить запрос отношения. | |
| 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 HasOneOrMany |
| 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) Создаёт таблично-индексированный массив из имён классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone() Принудительное клонирование базового построителя запросов при клонировании. | из Relation |
| Model | make(array $attributes = []) Создать и вернуть несохранённый экземпляр связанной модели. | из HasOneOrMany |
| array | matchOne(array $models, Collection $results, string $relation) Сопоставить результаты загрузки с их единственными родителями. | из HasOneOrMany |
| array | matchMany(array $models, Collection $results, string $relation) Сопоставить результаты загрузки с их множественными родителями. | из HasOneOrMany |
| array | matchOneOrMany(array $models, Collection $results, string $relation, string $type) Сопоставить результаты загрузки с их множественными родителями. | из HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type) Получить значение отношения по типу "один" или "многие". | из HasOneOrMany |
| array | buildDictionary(Collection $results) Построить словарь моделей, индексированный внешним ключом отношения. | из HasOneOrMany |
| Collection|Model | findOrNew(mixed $id, array $columns = ['*']) Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | из HasOneOrMany |
| Model | firstOrNew(array $attributes, array $values = []) Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| Model | firstOrCreate(array $attributes, array $values = []) Получить первую связанную запись, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasOneOrMany |
| Model|false | save(Model $model) Прикрепить экземпляр модели к родительской модели. | из HasOneOrMany |
| Traversable|array | saveMany(Traversable|array $models) Прикрепить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| Model | create(array $attributes = []) Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Collection | createMany(array $records) Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Model $model) Установить внешний ID и тип для создания связанной модели. | |
| int | update(array $attributes) Выполнить обновление всех связанных моделей. | из HasOneOrMany |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения в той же таблице. | из HasOneOrMany |
| string | getRelationCountHash() Получить хэш таблицы соединения отношений. | из HasOneOrMany |
| string | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| mixed | getParentKey() Получить значение ключа локального ключа родителя. | из HasOneOrMany |
| string | getForeignKeyName() Получить простой внешний ключ. | из HasOneOrMany |
| string | getQualifiedForeignKeyName() Получить внешний ключ для отношения. | из HasOneOrMany |
| string | getQualifiedMorphType() Получить имя внешнего ключа "type". | |
| string | getMorphType() Получить простое имя типа morph без таблицы. |
| string | getMorphClass() Получить имя класса родительской модели. |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода данному объекту.
static protected void throwBadMethodCallException(string $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 $type, string $id, string $localKey)
Создать новый экземпляр связи один-к-одному или один-ко-многим.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями по связи.
void addConstraints()
Установить основные ограничения на запрос связи.
void addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки связи.
abstract array initRelation(array $models, string $relation)
Инициализировать связь на наборе моделей.
abstract array match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родителями.
abstract mixed getResults()
Получить результаты связи.
Collection getEager()
Получить связь для ленивой загрузки.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию «select».
void touch()
Обновить все связанные модели для связи.
int rawUpdate(array $attributes = [])
Выполнить «raw update» для базового запроса.
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()
Принудительно клонировать базовый билдер запроса при клонировании.
Model make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные в eager-mode результаты с их единственными родителями.
array matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные в eager-mode результаты с их множественными родителями.
protected array matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные в eager-mode результаты с их множественными родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по одному или нескольким типам.
protected array buildDictionary(Collection $results)
Построить словарь модели, индексированный по внешнему ключу связи.
Collection|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes, array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать ее.
Модель firstOrCreate(array $attributes, array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.
Traversable|array saveMany(Traversable|array $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Коллекция createMany(array $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
int update(array $attributes)
Выполнить обновление всех связанных моделей.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
string getRelationCountHash()
Получить хэш таблицы объединения связи.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
mixed getParentKey()
Получить значение ключа родительского локального ключа.
string getForeignKeyName()
Получить простой внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для связи.
string getQualifiedMorphType()
Получить имя внешнего ключа "type".
string getMorphType()
Получить простое имя морфологического типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html