Spec-Zone.ru › Laravel 11

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)

Перенаправить вызов метода к заданному объекту.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Перенаправить вызов метода к заданному объекту, возвращая $this, если перенаправленный вызов вернул себя.

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

Выбросить исключение BadMethodCall для данного метода.

Parameters

string $method

Return Value

void

Exceptions

BadMethodCallException

static void macro(string $name, object|callable $macro)

Зарегистрировать пользовательское макро.

Parameters

string $name
object|callable $macro

Return Value

void
END_OF_DOCUMENT_MARKER

static void mixin(object $mixin, bool $replace = true)

Смешать другой объект в класс.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Проверяет, зарегистрирован ли макрос.

Parameters

string $name

Return Value

bool

static void flushMacros()

Очистить существующие макросы.

Return Value

void

static mixed __callStatic(string $method, array $parameters)

Динамически обрабатывает вызовы к классу.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Динамически обрабатывает вызовы к классу.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void __construct(Builder $query, Model $parent, string $foreignKey, string $localKey)

Создать новый экземпляр связи один-к-одному или один-ко-многим.

Parameters

Builder $query
Model $parent
string $foreignKey
string $localKey

Return Value

void

static mixed noConstraints(Closure $callback)

Выполнить обратный вызов с отключенными ограничениями для отношения.

Parameters

Closure $callback

Return Value

mixed

void addConstraints()

Установить базовые ограничения для запроса отношения.

Return Value

void

void addEagerConstraints(array $models)

Нет описания

Parameters

array $models

Return Value

void

TDeclaringModel> initRelation(array $models, string $relation)

Нет описания

Parameters

array $models
string $relation

Return Value

TDeclaringModel>

TDeclaringModel> match(array $models, Collection $results, string $relation)

Нет описания

Parameters

array $models
Collection $results
string $relation

Return Value

TDeclaringModel>

TResult getResults()

Нет описания

Return Value

TResult

TRelatedModel> getEager()

Получить отношение для ленивой загрузки.

Return Value

TRelatedModel>

TRelatedModel sole(array|string $columns = ['*'])

Выполнить запрос и получить первый результат, если это единственная соответствующая запись.

Parameters

array|string $columns

Return Value

TRelatedModel

Exceptions

TRelatedModel>
MultipleRecordsFoundException

TRelatedModel> get(array $columns = ['*'])

Выполнить запрос как операцию "select".

Parameters

array $columns

Return Value

TRelatedModel>

void touch()

Обновить все связанные модели для отношения.

Return Value

void

int rawUpdate(array $attributes = [])

Выполнить сырое обновление по базовому запросу.

Parameters

array $attributes

Return Value

int

TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

Добавить ограничения для запроса подсчёта существования отношения.

Parameters

Builder $query
Builder $parentQuery

Return Value

TRelatedModel>
END_OF_DOCUMENT_MARKER

TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Описание отсутствует

Параметры

Builder $query
Builder $parentQuery
array|mixed $columns

Значение результата

TRelatedModel>

string getRelationCountHash(bool $incrementJoinCount = true)

Получить хеш таблицы связи.

Параметры

bool $incrementJoinCount

Значение результата

string

protected array<int,int|string> getKeys(array $models, string|null $key = null)

Получить все первичные ключи для массива моделей.

Параметры

array $models
string|null $key

Значение результата

array<int,int|string>

protected TRelatedModel> getRelationQuery()

Получить конструктор запроса, который будет содержать ограничения связи.

Значение результата

TRelatedModel>

TRelatedModel> getQuery()

Получить основной запрос для связи.

Значение результата

TRelatedModel>

Builder getBaseQuery()

Получить базовый конструктор запроса, управляющий Eloquent-конструктором запроса.

Значение результата

Builder

Builder toBase()

Получить экземпляр базового конструктора запроса.

Значение результата

Builder

TDeclaringModel getParent()

Получить родительскую модель связи.

Значение результата

TDeclaringModel

string getQualifiedParentKeyName()

Получить полное имя родительского ключа.

Значение результата

string

TRelatedModel getRelated()

Получить связанную модель связи.

Значение результата

TRelatedModel

string createdAt()

Получить имя столбца «создано в».

Значение результата

string

string updatedAt()

Получить имя столбца «обновлено в».

Значение результата

string

string relatedUpdatedAt()

Получить имя столбца «обновлено в» связанной модели.

Значение результата

string

protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)

Добавить ограничение whereIn для загрузки заданного набора ключей моделей.

Параметры

string $whereIn
string $key
array $modelKeys
Builder|null $query

Значение результата

void

protected string whereInMethod(Model $model, string $key)

Получить имя метода «where in» для загрузки с помощью eager loading.

Параметры

Model $model
string $key

Значение результата

string

static void requireMorphMap(bool $requireMorphMap = true)

Предотвратить использование полиморфных связей без сопоставлений моделей.

Параметры

bool $requireMorphMap

Значение результата

void

static bool requiresMorphMap()

Определить, требуют ли полиморфные связи явное сопоставление моделей.

Значение результата

bool

static array enforceMorphMap(array $map, bool $merge = true)

Определить сопоставление полиморфных связей и потребовать явного сопоставления всех моделей с изменением.

Параметры

array $map
bool $merge

Значение результата

array

static array morphMap(array|null $map = null, bool $merge = true)

Установить или получить сопоставление полиморфных связей.

Параметры

array|null $map
bool $merge

Значение результата

array

static protected array|null buildMorphMapFromModels(array|null $models = null)

Создаёт массив с таблицами по именам классов моделей.

Параметры

array|null $models

Значение результата

array|null

static string|null getMorphedModel(string $alias)

Получить модель, связанную с пользовательским полиморфным типом.

Параметры

string $alias

Значение результата

string|null

static int|string getMorphAlias(string $className)

Получить псевдоним, связанный с пользовательским полиморфным классом.

Параметры

string $className

Значение результата

int|string

void __clone()

Принудительно клонировать базовый билдер запросов при клонировании.

Значение результата

void

protected mixed getDictionaryKey(mixed $attribute)

Получить атрибут ключа словаря — преобразовав его в строку при необходимости.

Параметры

mixed $attribute

Значение результата

mixed

Исключения

InvalidArgumentException

TRelatedModel make(array $attributes = [])

Создать и вернуть несохранённую экземпляр связанной модели.

Параметры

array $attributes

Значение результата

TRelatedModel

TRelatedModel> makeMany(iterable $records)

Создать и вернуть несохранённые экземпляры связанных моделей.

Параметры

iterable $records

Значение результата

TRelatedModel>

TDeclaringModel> matchOne(array $models, Collection $results, string $relation)

Сопоставить загруженные с жадностью результаты с их единственным родителем.

Параметры

array $models
Collection $results
string $relation

Значение результата

TDeclaringModel>

TDeclaringModel> matchMany(array $models, Collection $results, string $relation)

Сопоставить загруженные с жадностью результаты с их многими родителями.

Параметры

array $models
Collection $results
string $relation

Значение результата

TDeclaringModel>

protected TDeclaringModel> matchOneOrMany(array $models, Collection $results, string $relation, string $type)

Сопоставить загруженные с жадностью результаты с их многими родителями.

Параметры

array $models
Collection $results
string $relation
string $type

Значение результата

TDeclaringModel>

protected mixed getRelationValue(array $dictionary, string $key, string $type)

Получить значение отношения по типу «один» или «многие».

Параметры

array $dictionary
string $key
string $type

Значение результата

mixed

protected TRelatedModel>[] buildDictionary(Collection $results)

Создать словарь моделей, индексированный по внешнему ключу отношения.

Параметры

Collection $results

Значение результата

TRelatedModel>[]

findOrNew(mixed $id, array $columns = ['*'])

Найти модель по первичному ключу или вернуть новый экземпляр связанной модели.

Параметры

mixed $id
array $columns

TRelatedModel firstOrNew(array $attributes = [], array $values = [])

Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр.

Параметры

array $attributes
array $values

Значение результата

TRelatedModel

TRelatedModel firstOrCreate(array $attributes = [], array $values = [])

Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.

Параметры

array $attributes
array $values

Значение результата

TRelatedModel

TRelatedModel createOrFirst(array $attributes = [], array $values = [])

Попробовать создать запись. Если возникает нарушение уникальности, попытаться найти соответствующую запись.

Параметры

array $attributes
array $values

Значение результата

TRelatedModel

TRelatedModel updateOrCreate(array $attributes, array $values = [])

Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.

Параметры

array $attributes
array $values

Значение результата

TRelatedModel

TRelatedModel|false save(Model $model)

Прикрепить экземпляр модели к родительской модели.

Параметры

Model $model

Значение результата

TRelatedModel|false

TRelatedModel|false saveQuietly(Model $model)

Прикрепить экземпляр модели к родительской модели без вызова событий.

Параметры

Model $model

Значение результата

TRelatedModel|false

TRelatedModel> saveMany(TRelatedModel> $models)

Прикрепить коллекцию моделей к родительскому экземпляру.

Параметры

TRelatedModel> $models

Значение результата

TRelatedModel>

TRelatedModel> saveManyQuietly(TRelatedModel> $models)

Прикрепить коллекцию моделей к родительскому экземпляру без вызова событий.

Параметры

TRelatedModel> $models

Значение результата

TRelatedModel>

TRelatedModel create(array $attributes = [])

Создать новый экземпляр связанной модели.

Параметры

array $attributes

Возвращаемое значение

TRelatedModel

TRelatedModel createQuietly(array $attributes = [])

Создать новый экземпляр связанной модели без поднятия любых событий для родительской модели.

Параметры

array $attributes

Возвращаемое значение

TRelatedModel

TRelatedModel forceCreate(array $attributes = [])

Создать новый экземпляр связанной модели. Разрешить привязку по массе.

Параметры

array $attributes

Возвращаемое значение

TRelatedModel

TRelatedModel forceCreateQuietly(array $attributes = [])

Создать новый экземпляр связанной модели с привязкой по массе без поднятия событий модели.

Параметры

array $attributes

Возвращаемое значение

TRelatedModel

TRelatedModel> createMany(iterable $records)

Создать коллекцию новых экземпляров связанной модели.

Параметры

iterable $records

Возвращаемое значение

TRelatedModel>

TRelatedModel> createManyQuietly(iterable $records)

Создать коллекцию новых экземпляров связанной модели без поднятия любых событий для родительской модели.

Параметры

iterable $records

Возвращаемое значение

TRelatedModel>

protected void setForeignAttributesForCreate(Model $model)

Установить внешний идентификатор для создания связанной модели.

Параметры

Model $model

Возвращаемое значение

void

TRelatedModel> getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса связи на той же таблице.

Параметры

Builder $query
Builder $parentQuery
array|mixed $columns

Возвращаемое значение

TRelatedModel>

$this take(int $value)

Псевдоним для установки значения «limit» запроса.

Параметры

int $value

Возвращаемое значение

$this

$this limit(int $value)

Установить значение «limit» запроса.

Параметры

int $value

Возвращаемое значение

$this

string getExistenceCompareKey()

Получить ключ для сравнения с родительским ключом в запросе «has».

Возвращаемое значение

string

mixed getParentKey()

Получить значение ключа локального родительского ключа.

Возвращаемое значение

mixed

string getForeignKeyName()

Получить обычный внешний ключ.

Возвращаемое значение

string

string getQualifiedForeignKeyName()

Получить внешний ключ для связи.

Возвращаемое значение

string

string getLocalKeyName()

Получить локальный ключ для связи.

Возвращаемое значение

string

TDeclaringModel> one()

Преобразовать связь в связь «имеет один».

Возвращаемое значение

TDeclaringModel>

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API