HasOneOrMany
абстрактный класс HasOneOrMany расширяет Relation (Просмотреть исходный код)
Свойства
| 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 | Внешний ключ родительской модели. | |
| защищённая строка | $localKey | Локальный ключ родительской модели. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, возвращая $this, если переданный вызов вернул себя. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение bad method call для данного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Включить другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | из Macroable |
| static void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обрабатывает вызовы к классу. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обрабатывает вызовы к классу. | из Macroable |
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $localKey)
Создать новый экземпляр связи один-к-одному или один-ко-многим. | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для связи. | из Relation |
| void | addConstraints()
Установить базовые ограничения для запроса связи. | |
| void | addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки связи. | |
| array | initRelation(array $models, string $relation)
Инициализировать связь для набора моделей. | из Relation |
| array | match(array $models, Collection $results, string $relation)
Сопоставить загруженные ленивой загрузкой результаты с их родителями. | из Relation |
| mixed | getResults()
Получить результаты связи. | из Relation |
| Collection | getEager()
Получить связь для ленивой загрузки. | из Relation |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись. | из Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select». | из Relation |
| void | touch()
Обновить все связанные модели для связи. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить прямое обновление для основного запроса. | из Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта связи. | из Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи. | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения связи. | из Relation |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getRelationQuery()
Получить билдер запроса, который будет содержать ограничения связи. | из Relation |
| Builder | getQuery()
Получить базовый запрос для связи. | из Relation |
| Builder | getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent. | из Relation |
| Builder | toBase()
Получить экземпляр базового билдера запроса. | из Relation |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное имя родительского ключа. | |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца «создано в». | из Отношения |
| строка | updatedAt()
Получить имя столбца «обновлено в». | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для ленивой загрузки. | из Отношения |
| static void | requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления модели. | из Отношения |
| static массив | enforceMorphMap(массив $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели морфировались явно. | из Отношения |
| static массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | из Отношения |
| static массив|null | buildMorphMapFromModels(массив $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Отношения |
| static строка|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 = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| Модель|ложь | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | |
| Модель|ложь | saveQuietly(Модель $model)
Прикрепить экземпляр модели к родительской модели без поднятия событий. | |
| iterable | saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | |
| iterable | saveManyQuietly(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру без поднятия событий. | |
| Модель | create(массив $attributes = [])
Создать новый экземпляр связанной модели. | |
| Модель | createQuietly(массив $attributes = [])
Создать новый экземпляр связанной модели без поднятия событий. | |
| Модель | forceCreate(массив $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()
Получить локальный ключ для взаимоотношений. |
Подробности
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(Библиотека $query, Модель $parent, string $foreignKey, string $localKey)
Создать новый экземпляр взаимоотношений "один к одному" или "один ко многим".
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями в отношении.
void addConstraints()
Установить базовые ограничения на запрос взаимоотношений.
void addEagerConstraints(array $models)
Установить ограничения для жадного загрузки взаимоотношений.
abstract array initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
abstract array match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родительскими элементами.
abstract mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для ленивой загрузки.
Модель 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()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected string whereInMethod(Модель $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 $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)
Получить атрибут словаря ключей, при необходимости преобразовав его в строку.
Модель make(array $attributes = [])
Создать и вернуть незасохранённый экземпляр связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть незасохранённые экземпляры связанных моделей.
array matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные ленично результаты с их единственным родителем.
array matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные ленично результаты с их многими родителями.
protected array matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить загруженные ленично результаты с их многими родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по одному или множеству типов.
protected array buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения.
Коллекция|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её.
Модель firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель|false saveQuietly(Модель $model)
Присоединить экземпляр модели к родительской модели без срабатывания каких-либо событий.
iterable saveMany(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру.
iterable saveManyQuietly(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру без срабатывания каких-либо событий у родительской модели.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Модель createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания каких-либо событий у родительской модели.
Модель forceCreate(array $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/HasOneOrMany.html