HasOneOrMany
абстрактный класс HasOneOrMany наследуется от Relation (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | from Macroable |
| protected TRelatedModel> | $query | Экземпляр Eloquent-запросного билдера. | from Relation |
| protected TDeclaringModel | $parent | Экземпляр родительской модели. | from Relation |
| protected TRelatedModel | $related | Экземпляр связанной модели. | from Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой набор. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | from Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морфий в базе данных. | from Relation |
| static protected bool | $requireMorphMap | Запрещает морфийные отношения без морфийного отображения. | from Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | from Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | |
| protected string | $localKey | Локальный ключ родительской модели. |
Методы
| 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)
Создает новый экземпляр связи один-к-одному или один-ко-многим. | |
| static mixed | noConstraints(Closure $callback)
Выполняет обратный вызов без ограничений для связи. | from Relation |
| void | addConstraints()
Устанавливает базовые ограничения для запроса связи. | |
| void | addEagerConstraints(array $models) Без описания | |
| TDeclaringModel> | initRelation(array $models, string $relation)
Инициализирует связь для набора моделей. | from Relation |
| TDeclaringModel> | match(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их родительскими объектами. | from Relation |
| TResult | getResults()
Получить результаты отношения. | from Relation |
| 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 = ['*']) Без описания | |
| 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. | из Relation |
| Builder | toBase()
Получить экземпляр базового билдера запроса. | из Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName()
Получить полное имя ключа родительской записи. | |
| TRelatedModel | getRelated()
Получить связанную модель отношения. | из Relation |
| string | createdAt()
Получить имя столбца "created at". | из Relation |
| string | updatedAt()
Получить имя столбца "updated at". | из Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из 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 |
| статический массив|null | buildMorphMapFromModels(массив|null $models = null)
Создает массив с ключами в виде таблиц из имен моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| статический int|строка | getMorphAlias(строка $className)
Получить псевдоним, связанный с пользовательским полиморфным классом. | из Relation |
| void | __clone()
Принудительно клонирует базовый генератор запросов при клонировании. | из Relation |
| смешанный тип | getDictionaryKey(смешанный тип $attribute)
Получить атрибут ключа словаря - преобразовав его в строку, если это необходимо. | из InteractsWithDictionary |
| TRelatedModel | make(массив $attributes = [])
Создать и вернуть несохранённую инстанцию связанной модели. | |
| TRelatedModel> | makeMany(iterable $records)
Создать и вернуть несохранённые инстанции связанных моделей. | |
| TDeclaringModel> | matchOne(массив $models, Collection $results, строка $relation)
Сопоставить загруженные с жадностью результаты с их единственными родителями. |
| TDeclaringModel> | matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные в eager mode результаты со своими родительскими моделями. | |
| TDeclaringModel> | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные в eager mode результаты со своими родительскими моделями. | |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по типу one или many. | |
| 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)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий родительской модели. |
| 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()
Получить локальный ключ для отношения. |
Подробности
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)
Выбросить исключение bad method call для заданного метода.
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)
Динамически обработать вызовы класса.
смешанный __call(string $method, array $parameters)
Динамически обрабатывать вызовы класса.
void __construct(Builder $query, Model $parent, string $foreignKey, string $localKey)
Создать новый экземпляр отношения один-к-одному или один-ко-многим.
статический смешанный noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Без описания
abstract TDeclaringModel> initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
abstract TDeclaringModel> match(array $models, Collection $results, string $relation)
Сопоставить результаты жадного загрузки с родительскими объектами.
abstract 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" для леничной загрузки.
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)
Сопоставить загруженные в режиме eager results с их родительскими элементами.
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)
Прикрепить экземпляр модели к родительской модели.
TRelatedModel|false saveQuietly(Модель $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()
Получить локальный ключ для связи.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/HasOneOrMany.html