MorphMany
класс MorphMany расширяет 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 |
| защищенный 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 |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное имя ключа родительской записи. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца "created at". | из Отношения |
| строка | updatedAt()
Получить имя столбца "updated at". | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки. | из Отношения |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| статический массив | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление полиморфных отношений и потребовать, чтобы все модели с морфизмом были явно сопоставлены. | из Отношения |
| статический массив | morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(array $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Вынуждает клонирование базового билдера запроса при клонировании. | из Отношения |
| смешанный тип | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, при необходимости приведя его к строковому типу. | из Взаимодействует со словарем |
| Модель | make(array $attributes = [])
Создать и вернуть несохранённую копию связанной модели. | из ОдинКОдномуИлиНесколькоКОдному |
| Коллекция | makeMany(iterable $records)
Создать и вернуть несохранённые копии связанных моделей. | из ОдинКОдномуИлиНесколькоКОдному |
| массив | matchOne(array $models, Коллекция $results, string $relation)
Сопоставить результаты ленивой загрузки с их единственными родителями. | из ОдинКОдномуИлиНесколькоКОдному |
| массив | matchMany(array $models, Коллекция $results, string $relation)
Сопоставить результаты ленивой загрузки с их множественными родителями. | из ОдинКОдномуИлиНесколькоКОдному |
| массив | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить результаты ленивой загрузки с их множественными родителями. | из ОдинКОдномуИлиНесколькоКОдному |
| смешанный тип | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один-к-одному или один-ко-многим. | из ОдинКОдномуИлиНесколькоКОдному |
| массив | buildDictionary(Коллекция $results)
Создаёт словарь моделей, индексированный по внешнему ключу отношения. | из ОдинКОдномуИлиНесколькоКОдному |
| Коллекция| Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель | firstOrCreate(array $attributes = [], array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель|ложь | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из ОдинКОдномуИлиНесколькоКОдному |
| iterable | saveMany(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру. | from HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | from HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое присвоение. | |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | from HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний ID и тип для создания связанной модели. | from MorphOneOrMany |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе. | from HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has". | from HasOneOrMany |
| 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()
Получить связь для ленивой загрузки.
Model sole(array|string $columns = ['*'])
Выполняет запрос и получает первый результат, если это единственная соответствующая запись.
Collection get(array $columns = ['*'])
Выполняет запрос как операцию «select».
void touch()
Обновляет метки времени всех связанных моделей для связи.
int rawUpdate(array $attributes = [])
Выполняет неочищенный 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.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя ключа родительской таблицы.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя колонки "created at".
string updatedAt()
Получить имя колонки "updated at".
string relatedUpdatedAt()
Получить имя колонки "updated at" связанной модели.
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)
Определить мапу морфирования для полиморфных связей и потребовать явного сопоставления всех моделей, преобразованных с помощью морфирования.
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)
Получить атрибут ключа словаря — привести его к строке, если необходимо.
Модель make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей.
array matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с помощью eager loading результаты с их родительскими моделями.
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 updateOrCreate(array $attributes, array $values = [])
Создайте или обновите запись, соответствующую атрибутам, и заполните ее значениями.
iterable saveMany(iterable $models)
Прикрепите коллекцию моделей к экземпляру родительской модели.
Model create(array $attributes = [])
Создайте новый экземпляр связанной модели.
Model forceCreate(array $attributes = [])
Создайте новый экземпляр связанной модели. Разрешить масс-назначение.
Collection createMany(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/8.x/Illuminate/Database/Eloquent/Relations/MorphMany.html