MorphMany
класс MorphMany расширяет MorphOneOrMany (Просмотреть исходный код)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| защищенный bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами морфов в базе данных. | из Relation |
| статический защищенный bool | $requireMorphMap | Предотвращает морф-связи без карты морфов. | из Relation |
| статический защищенный int | $selfJoinCount | Количество самосоединений. | из Relation |
| защищенный string | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищенный string | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| защищенный string | $morphType | Тип внешнего ключа для связи. | из MorphOneOrMany |
| защищенный string | $morphClass | Имя класса родительской модели. | из MorphOneOrMany |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, возвращая $this, если перенаправленный вызов вернул себя. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для данного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макрос. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макрос. | из Macroable |
| static void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| void | __construct(Builder $query, Model $parent, string $type, string $id, string $localKey)
Создать новый экземпляр отношения "один ко многим" или "один к одному". | из MorphOneOrMany |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями на отношение. | из Relation |
| void | addConstraints()
Установить базовые ограничения на запрос отношения. | из MorphOneOrMany |
| void | addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки отношения. | из MorphOneOrMany |
| array | initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей. | |
| array | match(array $models, Collection $results, string $relation)
Сопоставить загруженные с ленивой загрузкой результаты с их родителями. | |
| mixed | getResults()
Получить результаты отношения. | |
| Collection | getEager()
Получить отношение для ленивой загрузки. | из Relation |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | из Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос как оператор "select". | из Relation |
| void | touch()
Обновить все связанные модели для отношения. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление по базовому запросу. | из Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношения. | из Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Получить запрос отношения. | из MorphOneOrMany |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения. | из Relation |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения. | из Relation |
| Builder | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий Eloquent-конструктором запроса. | из Relation |
| Builder | toBase()
Получить базовый экземпляр билдера запросов. | 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 |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для жадной загрузки заданного набора ключей моделей. | from Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для жадной загрузки. | from Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставлений моделей. | from Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явных сопоставлений моделей. | from Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Строит таблично-индексированный массив из имен классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | from Relation |
| void | __clone()
Вынужденно клонировать базовый билдер запросов при клонировании. | from Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, при необходимости преобразовав его в строку. | from InteractsWithDictionary |
| Model | make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели. | from HasOneOrMany |
| Collection | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | from HasOneOrMany |
| array | matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадной загрузкой результаты с их единственными родителями. | from HasOneOrMany |
| array | matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадной загрузкой результаты с их многими родителями. | from HasOneOrMany |
| array | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные с жадной загрузкой результаты с их многими родителями. | from HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один-к-одному или один-ко-многим. | from HasOneOrMany |
| array | buildDictionary(Collection $results)
Построить словарь моделей, индексированный по внешнему ключу отношения. | from HasOneOrMany |
| Collection|Model | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | from HasOneOrMany |
| Model | firstOrNew(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её, если она не найдена. | from HasOneOrMany |
| Model | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | from HasOneOrMany |
| Модель | createOrFirst(array $attributes = [], array $values = [])
Попытка создать запись. Если произойдёт нарушение уникальности, то попытка найти соответствующую запись. | из HasOneOrMany |
| Модель | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasOneOrMany |
| Модель|false | save(Модель $model)
Присоединить экземпляр модели к родительской модели. | из HasOneOrMany |
| Модель|false | saveQuietly(Модель $model)
Присоединить экземпляр модели к родительской модели без срабатывания каких-либо событий. | из HasOneOrMany |
| iterable | saveMany(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| iterable | saveManyQuietly(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру без срабатывания каких-либо событий. | из HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Модель | createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания каких-либо событий. | из HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | |
| Модель | forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с массовым назначением без срабатывания событий модели. | |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| Коллекция | createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания каких-либо событий. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели. | из MorphOneOrMany |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же таблице. | из HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| string | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| string | getQualifiedForeignKeyName()
Получить внешний ключ для отношения. | из HasOneOrMany |
| string | getLocalKeyName()
Получить локальный ключ для отношения. | из HasOneOrMany |
| string | getQualifiedMorphType()
Получить имя внешнего ключа "тип". | из MorphOneOrMany |
| string | getMorphType()
Получить простое имя морфного типа без таблицы. | из MorphOneOrMany |
| string | getMorphClass()
Получить имя класса родительской модели. | из MorphOneOrMany |
| MorphOne | one()
Преобразовать отношение в отношение "morph one". |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода к данному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода к данному объекту, возвращая $this, если перенаправленный вызов вернул себя.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для данного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательскую макрокоманду.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрирована ли макрокоманда.
static void flushMacros()
Очистить существующие макрокоманды.
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)
Создать новый экземпляр отношения morph one или many.
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()
Получить отношение для отложенной загрузки.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
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 = ['*'])
Получить запрос для отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы объединения отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить генератор запросов, который будет содержать ограничения отношения.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый генератор запросов, управляющий генератором запросов Eloquent.
Builder toBase()
Получить экземпляр базового генератора запросов.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставления моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление morph для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление morph для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт массив с ключами-таблицами из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Вынуждает клонировать лежащий в основе генератор запросов при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке.
Model make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели.
Collection makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственными родителями.
array matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты со своими множественными родителями.
protected array matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные с жадностью результаты со своими множественными родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по одному или множественному типу.
protected array buildDictionary(Collection $results)
Создать словарь модели, индексированный по внешнему ключу связи.
Collection|Model findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Model firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Model firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.
Model createOrFirst(array $attributes = [], array $values = [])
Попытаться создать запись. Если возникает нарушение уникальности, попытаться найти соответствующую запись.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Model|false saveQuietly(Model $model)
Прикрепить экземпляр модели к родительской модели без срабатывания каких-либо событий.
iterable saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
iterable saveManyQuietly(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру без срабатывания событий у родительской модели.
Model create(array $attributes = [])
Создать новый экземпляр связанной модели.
Model createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания событий родительской модели.
Model forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение.
Model forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с массовым назначением без срабатывания событий модели.
Collection createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
Collection createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий родительской модели.
protected void setForeignAttributesForCreate(Model $model)
Установить внешний ID и тип для создания связанной модели.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
string getExistenceCompareKey()
Получить ключ для сравнения с ключом родительской записи в запросе «has».
mixed getParentKey()
Получить значение ключа родительской локальной записи.
string getForeignKeyName()
Получить простой внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для отношения.
string getLocalKeyName()
Получить локальный ключ для отношения.
string getQualifiedMorphType()
Получить имя внешнего ключа «тип».
string getMorphType()
Получить простое имя морфного типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
MorphOne one()
Преобразовать отношение в отношение "morph one".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Database/Eloquent/Relations/MorphMany.html