HasMany
Класс HasMany расширяет HasOneOrMany (View source)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected TRelatedModel> | $query | Экземпляр Eloquent query builder. | из Relation |
| protected TDeclaringModel | $parent | Экземпляр родительской модели. | из Relation |
| protected TRelatedModel | $related | Экземпляр связанной модели. | из Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли загруженная с eager loading связь неявно возвращать пустой коллекцию. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имен классов с их именами morph в базе данных. | из Relation |
| static protected bool | $requireMorphMap | Препятствует morph-связям без morph map. | из Relation |
| static protected int | $selfJoinCount | Количество самосвязей. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
Методы
| 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 $foreignKey, string $localKey)
Создать новый экземпляр отношения один к одному или один ко многим. | from HasOneOrMany |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения. | from Relation |
| void | addConstraints()
Установить базовые ограничения для запроса отношения. | from HasOneOrMany |
| void | addEagerConstraints(array $models) Без описания | from HasOneOrMany |
| 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 = ['*'])
Выполнить запрос как оператор "select". | 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 HasOneOrMany |
| 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» для ленивой загрузки. | from Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | from Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | from Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели с морф были явно сопоставлены. | from Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | 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)
Получить псевдоним, связанный с настраиваемым полиморфным классом. | 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)
Сопоставить загруженные результаты с их единственным родителем. | from HasOneOrMany |
| TDeclaringModel> | matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их многими родителями. | from HasOneOrMany |
| TDeclaringModel> | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные результаты с их многими родителями. | from HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один или много. | 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 = [])
Создать новый экземпляр связанной модели. Разрешить масс-назначение. | из HasOneOrMany |
| TRelatedModel | forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с масс-назначением без срабатывания событий модели. | из HasOneOrMany |
| TRelatedModel> | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| TRelatedModel> | createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий родительской модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Model $model)
Установить внешний идентификатор для создания связанной модели. | из HasOneOrMany |
| 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 |
| TDeclaringModel> | 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)
Выбросить исключение BadMethodCall для данного метода.
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 $foreignKey, 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()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей.
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()
Получить локальный ключ для связи.
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/HasMany.html