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