HasMany
класс HasMany расширяет HasOneOrMany (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 |
| защищённая строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищённая строка | $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 |
| 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 HasOneOrMany |
| 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 |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | из ОдноКмногие |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца «создано в». | из Отношения |
| строка | updatedAt()
Получить имя столбца «обновлено в». | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для ленивой загрузки. | из Отношения |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление моделей. | из Отношения |
| статический массив | enforceMorphMap(массив $map, bool $merge = true)
Определить сопоставление типов для полиморфных отношений и потребовать, чтобы все модели с морфированием были явно сопоставлены. | из Отношения |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить сопоставление типов для полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Строит таблично-индексированный массив из имен классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Принудительно клонировать базовый создатель запросов при клонировании. | из Отношения |
| смешанный | getDictionaryKey(смешанный $attribute)
Получить атрибут ключа словаря — привести его к строке, если необходимо. | из Взаимодействие со словарем |
| Модель | make(массив $attributes = [])
Создать и вернуть несохраненный экземпляр связанной модели. | из ОдноКмногие |
| Коллекция | makeMany(итерируемый $records)
Создать и вернуть несохраненный экземпляр связанных моделей. | из ОдноКмногие |
| массив | matchOne(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные по требованию результаты с их единственными родителями. | из ОдноКмногие |
| массив | matchMany(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные по требованию результаты с их множественными родителями. | из ОдноКмногие |
| массив | matchOneOrMany(массив $models, Коллекция $results, строка $relation, строка $type)
Сопоставить загруженные по требованию результаты с их множественными родителями. | из ОдноКмногие |
| смешанный | getRelationValue(массив $dictionary, строка $key, строка $type)
Получить значение отношения по типу один или многие. | из ОдноКмногие |
| массив | buildDictionary(Коллекция $results)
Создать словарь моделей, индексированный по внешнему ключу отношения. | из ОдноКмногие |
| Коллекция|Модель | findOrNew(смешанный $id, массив $columns = ['*'])
Найти модель по ее первичному ключу или вернуть новый экземпляр связанной модели. | из ОдноКмногие |
| Модель | firstOrNew(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее. | из ОдноКмногие |
| Модель | firstOrCreate(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее. | из ОдноКмногие |
| Модель | updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями. | из ОдноКмногие |
| Модель|ложь | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из ОдноКмногие |
| iterable | saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | from HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | from HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | from HasOneOrMany |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | from HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор для создания связанной модели. | from HasOneOrMany |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе. | from HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с ключом родителя в запросе «имеет». | from HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа родительского локального ключа. | from HasOneOrMany |
| string | getИмяВнешнегоКлюча()
Получить простой внешний ключ. | from HasOneOrMany |
| string | getКвалифицированноеИмяВнешнегоКлюча()
Получить внешний ключ для отношения. | from HasOneOrMany |
| string | getИмяЛокальногоКлюча()
Получить локальный ключ для отношения. | from HasOneOrMany |
Подробности
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 $foreignKey, 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 = [])
Выполнить сырое обновление с базовым запросом.
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()
Получить базовый запрос для отношения.
Блок-схема getBaseQuery()
Получить основной объект построения запроса, управляющий объектом построения Eloquent.
Модель getParent()
Получить родительскую модель отношения.
строка getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
строка createdAt()
Получить имя столбца «создано в».
строка updatedAt()
Получить имя столбца «обновлено в».
строка relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели.
protected строка whereInMethod(Модель $model, string $key)
Получить имя метода «where in» для ленивой загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставлений моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static массив enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление morph для полиморфных отношений и потребовать, чтобы все модели, подвергнутые морфингу, были явно сопоставлены.
static массив morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление morph для полиморфных отношений.
static protected массив|null buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей.
static строка|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый объект построения запроса при клонировании.
protected смешанный getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — преобразовав его в строку, если это необходимо.
Модель make(array $attributes = [])
Создать и вернуть экземпляр связанной модели без сохранения.
Коллекция makeMany(iterable $records)
Создать и вернуть экземпляры связанных моделей без сохранения.
массив matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с помощью ленивой загрузки результаты с их единственными родителями.
массив matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с помощью ленивой загрузки результаты со многими родителями.
protected массив matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить загруженные с помощью ленивой загрузки результаты со многими родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по одному или нескольким типам.
protected array buildDictionary(Collection $results)
Создать словарь модели, индексированный по внешнему ключу связи.
Collection|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Модель firstOrCreate(array $attributes = [], array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
iterable saveMany(iterable $models)
Привязать коллекцию моделей к экземпляру родительской модели.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Модель forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить масс-назначение.
Коллекция createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор для создания связанной модели.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
mixed getParentKey()
Получить значение ключа родительского локального ключа.
string getForeignKeyName()
Получить простой внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для связи.
string getLocalKeyName()
Получить локальный ключ для связи.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Relations/HasMany.html