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 = [])
Выполнить обновление в формате SQL для основного запроса. | 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 |
| Билдер | toBase()
Получить базовый экземпляр билдера запросов. | из Отношения |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное имя родительского ключа. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца "created at". | из Отношения |
| строка | updatedAt()
Получить имя столбца "updated at". | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из Отношения |
| строка | 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(iterable $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 = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из ОдинКОдномуИлиНесколькоКОдному |
| Модель|false | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из HasOneOrMany |
| Модель|false | saveQuietly(Модель $model)
Прикрепить экземпляр модели к родительской модели без срабатывания событий. | из HasOneOrMany |
| iterable | saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| iterable | saveManyQuietly(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру без срабатывания событий. | из HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Модель | createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания событий. | из HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | из HasOneOrMany |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| Коллекция | createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор для создания связанной модели. | из HasOneOrMany |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе. | из HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| string | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| string | getQualifiedForeignKeyName()
Получить внешний ключ для связи. | из HasOneOrMany |
| string | getLocalKeyName()
Получить локальный ключ для связи. | из 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 = ['*'])
Выполнить запрос как операцию «выбор».
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()
Получить родительскую модель связи.
строка 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)
Определить отображение полиморфных связей и потребовать явного отображения всех моделей, подвергшихся морфингу.
static массив morphMap(array $map = null, bool $merge = true)
Установить или получить отображение полиморфных связей.
static protected массив|null buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей.
static строка|null getMorphedModel(string $alias)
Получить модель, связанную с типом пользовательской полиморфной связи.
void __clone()
Принудительное клонирование базового объекта билдера запроса при клонировании.
protected смешанный тип getDictionaryKey(смешанный тип $attribute)
Получить атрибут ключа словаря — преобразуя его в строку, если это необходимо.
Модель make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей.
массив matchOne(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные с нетерпением результаты с их единственными родителями.
массив matchMany(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные с нетерпением результаты со многими родителями.
protected массив matchOneOrMany(массив $models, Коллекция $results, строка $relation, строка $type)
Сопоставить загруженные с нетерпением результаты со многими родителями.
protected смешанный тип getRelationValue(массив $dictionary, строка $key, строка $type)
Получить значение отношения по типу один или многие.
protected массив buildDictionary(Коллекция $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
Коллекция|Модель findOrNew(смешанный тип $id, массив $columns = ['*'])
Найти модель по ее первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(массив $attributes = [], массив $values = [])
Получить первую связанную запись модели, соответствующую атрибутам, или создать ее.
Модель firstOrCreate(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее.
Модель updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.
Модель|ложь saveQuietly(Модель $model)
Привязать экземпляр модели к родительской модели без поднятия событий.
итерируемый объект saveMany(итерируемый объект $models)
Привязать коллекцию моделей к родительскому экземпляру.
итерируемый объект saveManyQuietly(итерируемый объект $models)
Привязать коллекцию моделей к родительскому экземпляру без поднятия событий.
Модель create(массив $attributes = [])
Создать новый экземпляр связанной модели.
Модель createQuietly(массив $attributes = [])
Создать новый экземпляр связанной модели без поднятия событий.
Модель forceCreate(массив $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение.
Коллекция createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
Коллекция createManyQuietly(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/9.x/Illuminate/Database/Eloquent/Relations/HasMany.html