HasMany
класс HasMany расширяет HasOneOrMany (View source)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| защищённый булево значение | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| статический защищённый булево значение | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами morph в базе данных. | из Relation |
| статический защищённый булево значение | $requireMorphMap | Препятствует morph-связям без morph-карты. | из Relation |
| статический защищённый целое число | $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 = ['*'])
Выполнить запрос в качестве оператора «выбрать». | 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 |
| Builder | toBase()
Получить базовый экземпляр билдера запросов. | from Relation |
| Model | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | from HasOneOrMany |
| Model | getRelated()
Получить связанную модель отношения. | from Relation |
| string | createdAt()
Получить имя столбца "created at". | from Relation |
| string | updatedAt()
Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | from Relation |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder $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)
Определить морф-отображение для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить морф-отображение для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Создаёт таблично-индексированный массив из имён классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | from Relation |
| void | __clone()
Принудительно клонировать базовый билдер запросов при клонировании. | from Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, при необходимости привести его к строке. | from InteractsWithDictionary |
| Model | make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели. | from HasOneOrMany |
| Collection | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | from 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|Model | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели. | from HasOneOrMany |
| Model | firstOrNew(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам, или создать новый экземпляр. | from HasOneOrMany |
| Model | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | from HasOneOrMany |
| Модель | createOrFirst(array $attributes = [], array $values = [])
Попытка создать запись. Если возникает нарушение уникальности, попытка найти соответствующую запись. | из ОтношениеОдинКоМногим |
| Модель | updateOrCreate(array $attributes, array $values = [])
Создание или обновление связанной записи, соответствующей атрибутам, и заполнение её значениями. | из ОтношениеОдинКоМногим |
| Модель|false | save(Модель $model)
Присоединение экземпляра модели к родительской модели. | из ОтношениеОдинКоМногим |
| Модель|false | saveQuietly(Модель $model)
Присоединение экземпляра модели к родительской модели без срабатывания каких-либо событий. | из ОтношениеОдинКоМногим |
| iterable | saveMany(iterable $models)
Присоединение коллекции моделей к родительскому экземпляру. | из ОтношениеОдинКоМногим |
| iterable | saveManyQuietly(iterable $models)
Присоединение коллекции моделей к родительскому экземпляру без срабатывания каких-либо событий. | из ОтношениеОдинКоМногим |
| Модель | create(array $attributes = [])
Создание нового экземпляра связанной модели. | из ОтношениеОдинКоМногим |
| Модель | createQuietly(array $attributes = [])
Создание нового экземпляра связанной модели без срабатывания каких-либо событий. | из ОтношениеОдинКоМногим |
| Модель | forceCreate(array $attributes = [])
Создание нового экземпляра связанной модели. Разрешить массовое присваивание. | из ОтношениеОдинКоМногим |
| Модель | forceCreateQuietly(array $attributes = [])
Создание нового экземпляра связанной модели с массовым присваиванием без срабатывания событий модели. | из ОтношениеОдинКоМногим |
| Коллекция | createMany(iterable $records)
Создание Коллекции новых экземпляров связанной модели. | из ОтношениеОдинКоМногим |
| Коллекция | createManyQuietly(iterable $records)
Создание Коллекции новых экземпляров связанной модели без срабатывания каких-либо событий. | из ОтношениеОдинКоМногим |
| void | setForeignAttributesForCreate(Модель $model)
Устанавливает внешний идентификатор для создания связанной модели. | из ОтношениеОдинКоМногим |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавление ограничений для запроса отношений на одной и той же таблице. | из ОтношениеОдинКоМногим |
| string | getExistenceCompareKey()
Получение ключа для сравнения с родительским ключом в запросе "has". | из ОтношениеОдинКоМногим |
| mixed | getParentKey()
Получение значения ключа родительского локального ключа. | из ОтношениеОдинКоМногим |
| string | getForeignKeyName()
Получение простого внешнего ключа. | из ОтношениеОдинКоМногим |
| string | getQualifiedForeignKeyName()
Получение внешнего ключа для отношения. | из ОтношениеОдинКоМногим |
| string | getLocalKeyName()
Получение локального ключа для отношения. | из ОтношениеОдинКоМногим |
| ОдинКОдному | 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)
Установить ограничения для отложенной загрузки связи.
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()
Получить базовый запрос для взаимосвязи.
Builder getBaseQuery()
Получить базовый объект-строитель запроса, управляющий объектом-строителем Eloquent.
Builder toBase()
Получить экземпляр базового объекта-строителя запроса.
Модель getParent()
Получить родительскую модель взаимосвязи.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель взаимосвязи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей.
protected string whereInMethod(Модель $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 $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 = [])
Создать и вернуть несохранённую инстанцию связанной модели.
Collection makeMany(iterable $records)
Создать и вернуть несохранённые инстанции связанных моделей.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственным родителем.
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 createOrFirst(array $attributes = [], array $values = [])
Попытка создать запись. Если возникает нарушение уникальности, попытаться найти соответствующую запись.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Model|false saveQuietly(Model $model)
Прикрепить экземпляр модели к родительской модели без срабатывания каких-либо событий.
iterable saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
iterable saveManyQuietly(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру без срабатывания каких-либо событий у родительской модели.
Model create(array $attributes = [])
Создать новый экземпляр связанной модели.
Model createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания каких-либо событий у родительской модели.
Model forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить масс-назначение.
Model forceCreateQuietly(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()
Получить локальный ключ для отношения.
HasOne one()
Преобразовать отношение в отношение "has one".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Database/Eloquent/Relations/HasMany.html