HasOneOrMany
абстрактный класс HasOneOrMany расширяет Relation (View source)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| защищённый bool | $eagerKeysWereEmpty | Указывает, следует ли неявно возвращать пустой коллекцией при ленивой загрузке связи. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| статический защищённый bool | $requireMorphMap | Предотвращает морф связи без морф карты. | из Relation |
| статический защищённый int | $selfJoinCount | Количество самосоединений. | из Relation |
| защищённая строка | $foreignKey | Внешний ключ родительской модели. | |
| защищённая строка | $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)
Установить ограничения для нетерпеливой загрузки отношения. | |
| array | initRelation(array $models, string $relation)
Инициализировать отношение на наборе моделей. | from Relation |
| array | match(array $models, Collection $results, string $relation)
Сопоставить нетерпеливо загруженные результаты с их родителями. | from Relation |
| mixed | getResults()
Получить результаты отношения. | from Relation |
| 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 = [])
Выполнить необработанное обновление для базового запроса. | from Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношений. | from Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения. | |
| 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 |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное имя ключа родительской записи. | |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца "создано в". | из Отношения |
| строка | updatedAt()
Получить имя столбца "обновлено в". | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели. | из Отношения |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей модели. | из Отношения |
| строка | whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки. | из Отношения |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| static массив | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление "morph map" для полиморфных отношений и потребовать, чтобы все модели с морфированием были явно сопоставлены. | из Отношения |
| static массив | morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление "morph map" для полиморфных отношений. | из Отношения |
| static массив|null | buildMorphMapFromModels(array $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Отношения |
| static строка|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Вынуждает клонирование подчинённого билдера при клонировании. | из Отношения |
| смешанный тип | getDictionaryKey(mixed $attribute)
Получить атрибут-ключ словаря, при необходимости преобразовав его в строку. | из InteractsWithDictionary |
| Модель | make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели. | |
| Коллекция | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | |
| массив | matchOne(array $models, Коллекция $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их единственными родителями. | |
| массив | matchMany(array $models, Коллекция $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, со многими родителями. | |
| массив | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить результаты, загруженные с помощью eager loading, со многими родителями. | |
| смешанный тип | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по одному или множественному типу. | |
| массив | buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения. | |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её экземпляр. | |
| Модель | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | |
| Модель | 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()
Получить локальный ключ для связи. |
Details
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()
Получить родительскую модель отношения.
строка getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской записи.
Модель getRelated()
Получить связанную модель отношения.
строка createdAt()
Получить имя столбца "created at".
строка updatedAt()
Получить имя столбца "updated at".
строка relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей.
protected строка whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для загрузки с помощью eager loading.
static void requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей.
static логическое 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)
Сопоставить загруженные с помощью eager loading результаты с их единственными родителями.
array matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с помощью eager loading результаты с их множественными родителями.
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 = [])
Создать новый экземпляр связанной модели с массивным присваиванием без поднятия событий модели.
Коллекция 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/10.x/Illuminate/Database/Eloquent/Relations/HasOneOrMany.html