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