HasOne
class HasOne extends HasOneOrMany (View source)
Свойства
| SupportsDefaultModels | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | from Macroable |
| protected Builder | $query | Экземпляр Eloquent-билдера запросов. | from Relation |
| protected Model | $parent | Экземпляр родительской модели. | from Relation |
| protected Model | $related | Экземпляр связанной модели. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | from Relation |
| static array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | from Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | from HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | from HasOneOrMany |
| static protected int | $selfJoinCount | Количество самосоединений. | from HasOneOrMany |
| protected Closure|array|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | from SupportsDefaultModels |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters) Передать вызов метода заданному объекту. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method) Выбросить исключение плохого вызова метода для данного метода. | из 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 mixed | __callStatic(string $method, array $parameters) Динамически обработать вызовы класса. | из Macroable |
| mixed | __call(string $method, array $parameters) Динамически обработать вызовы класса. | из Macroable |
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $localKey) Создать новый экземпляр отношения один-ко-многим или многие-ко-многим. | из HasOneOrMany |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений на отношении. | из Relation |
| void | addConstraints() Установить базовые ограничения на запросе отношения. | из HasOneOrMany |
| void | addEagerConstraints(array $models) Установить ограничения для ленивой загрузки отношения. | из HasOneOrMany |
| array | initRelation(array $models, string $relation) Инициализировать отношение на наборе моделей. | |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные лениво результаты с их родителями. | |
| mixed | getResults() Получить результаты отношения. | |
| Collection | getEager() Получить отношение для ленивой загрузки. | из Relation |
| Collection | get(array $columns = ['*']) Выполнить запрос как операцию «выбор». | из 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 = ['*']) Добавить ограничения для запроса отношения. | из HasOneOrMany |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery() Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery() Получить базовый билдер запросов, управляющий билдером Eloquent. | из Relation |
| Model | getParent() Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName() Получить полностью квалифицированное имя родительского ключа. | из HasOneOrMany |
| Model | getRelated() Получить связанную модель отношения. | из Relation |
| string | createdAt() Получить имя столбца «создано в». | из Relation |
| string | updatedAt() Получить имя столбца «обновлено в». | из Relation |
| string | relatedUpdatedAt() Получить имя столбца «обновлено в» связанной модели. | из Relation |
| строка | whereInMethod(Модель $model, строка $key) Получить имя метода «where in» для ленивой загрузки. | из Связи |
| массив | morphMap(массив $map = null, bool $merge = true) Установить или получить карту морфизма для полиморфных связей. | из Связи |
| массив|null | buildMorphMapFromModels(массив $models = null) Создаёт таблично-индексированный массив из имён классов моделей. | из Связи |
| строка|null | getMorphedModel(строка $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Связи |
| void | __clone() Принудительно клонировать базовый билдер запросов при клонировании. | из Связи |
| Модель | make(массив $attributes = []) Создать и вернуть несохранённую экземпляр связанной модели. | из ОдинКОдномуИлиМногим |
| массив | 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) Прикрепить экземпляр модели к родительской модели. | из ОдинКОдномуИлиМногим |
| итерируемый | saveMany(итерируемый $models) Прикрепить коллекцию моделей к родительскому экземпляру. | из ОдинКОдномуИлиМногим |
| Модель | create(массив $attributes = []) Создать новый экземпляр связанной модели. | из ОдинКОдномуИлиМногим |
| Коллекция | createMany(массив $records) Создать коллекцию новых экземпляров связанной модели. | из ОдинКОдномуИлиМногим |
| void | setForeignAttributesForCreate(Модель $model) Установить внешний идентификатор для создания связанной модели. | из ОдинКОдномуИлиМногим |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | из ОдинКОдномуИлиМногим |
| строка | getRelationCountHash() Получить хеш таблицы объединения отношений. | из ОдинКОдномуИлиМногим |
| строка | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе «has». | из ОдинКОдномуИлиМногим |
| смешанный | getParentKey() Получить значение ключа родительского локального ключа. | из ОдинКОдномуИлиМногим |
| строка | getForeignKeyName() Получить простой внешний ключ. | из ОдинКОдномуИлиМногим |
| строка | getQualifiedForeignKeyName() Получить внешний ключ для отношения. | из ОдинКОдномуИлиМногим |
| string | getLocalKeyName() Получить локальный ключ для отношения. | из HasOneOrMany |
| Модель | newRelatedInstanceFor(Модель $parent) Создать новую связанную запись для данной модели. | |
| $this | withDefault(Closure|массив|bool $callback = true) Возвратить новый экземпляр модели в случае, если отношение не существует. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent) Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту.
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 mixed __callStatic(string $method, array $parameters)
Динамически обработать вызовы класса.
mixed __call(string $method, array $parameters)
Динамически обработать вызовы класса.
void __construct(Builder $query, Модель $parent, string $foreignKey, string $localKey)
Создать новый экземпляр отношения один к одному или один ко многим.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Установить ограничения для жадной загрузки отношения.
массив initRelation(массив $models, string $relation)
Инициализировать отношение на наборе моделей.
массив match(массив $models, Коллекция $results, string $relation)
Сопоставить результаты жадной загрузки с их родительскими элементами.
mixed getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для жадной загрузки.
Коллекция get(array $columns = ['*'])
Выполнить запрос как операцию «выбор».
void touch()
Обновить все связанные модели для связи.
int rawUpdate(array $attributes = [])
Выполнить прямое обновление по основному запросу.
Билдер getRelationExistenceCountQuery(Билдер $query, Билдер $parentQuery)
Добавить ограничения для запроса подсчёта связи.
Билдер getRelationExistenceQuery(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Билдер getQuery()
Получить базовый запрос для связи.
Билдер getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя колонки «создано в».
string updatedAt()
Получить имя колонки «обновлено в».
string relatedUpdatedAt()
Получить имя колонки «обновлено в» связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода «where in» для ленивой загрузки.
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()
Принудительно клонировать базовый билдер запроса при клонировании.
Модель make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели.
array matchOne(array $models, Коллекция $results, string $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 = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
итерируемый объект saveMany(итерируемый объект $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Модель create(массив $attributes = [])
Создать новый экземпляр связанной модели.
Коллекция createMany(массив $records)
Создать коллекцию новых экземпляров связанной модели.
protected ничего setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор для создания связанной модели.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный тип $columns = ['*'])
Добавить ограничения для запроса связи на том же таблице.
строка getRelationCountHash()
Получить хэш для таблицы соединения связи.
строка getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
смешанный тип getParentKey()
Получить значение ключа родительского элемента.
string getForeignKeyName()
Получить простое внешнее ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для отношения.
string getLocalKeyName()
Получить локальный ключ для отношения.
$this withDefault(Closure|array|bool $callback = true)
Возвращает новую модель в случае отсутствия отношения.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.8/Illuminate/Database/Eloquent/Relations/HasOne.html