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