HasOneOrMany
class HasOneOrMany extends Relation (View source)
Свойства
| protected Builder | $query | Экземпляр Eloquent-запросного билдера. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static protected array | $morphMap | Массив для сопоставления имён классов с их именами morph в базе данных. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | |
| protected string | $localKey | Локальный ключ родительской модели. | |
| static protected int | $selfJoinCount | Количество самосвязей. |
Методы
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $localKey) Создать новый экземпляр связи один-к-одному или один-ко-многим. | |
| 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 |
| void | touch() Обновить метку времени всех связанных моделей для отношения. | из Relation |
| int | rawUpdate(array $attributes = []) Выполнить сырое обновление базового запроса. | из Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта отношения. | из Relation |
| Builder | getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения. | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений на отношении. | из Relation |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery() Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий билдером Eloquent. | из Relation |
| Model | getParent() Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName() Получить полное имя родительского ключа. | |
| Model | getRelated() Получить связанную модель отношения. | из Relation |
| string | createdAt() Получить имя столбца "created at". | из Relation |
| string | updatedAt() Получить имя столбца "updated at". | из Relation |
| string | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | из Relation |
| string | wrap(string $value) Оборачивает заданное значение с помощью грамматики родительского запроса. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту morph для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает таблично-ключевой массив из имён классов моделей. | из Relation |
| mixed | __call(string $method, array $parameters) Обрабатывать динамические вызовы методов к отношению. | из Relation |
| void | __clone() Принудительно клонировать базовый билдер запросов при клонировании. | из Relation |
| Builder | getRelationQueryForSelfRelation(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения к одной и той же таблице. | |
| string | getRelationCountHash() Получить хэш таблицы объединения отношения. | |
| array | matchOne(array $models, Collection $results, string $relation) Сопоставить загруженные с жадной загрузкой результаты с их единственным родителем. | |
| array | matchMany(array $models, Collection $results, string $relation) Сопоставить загруженные с жадной загрузкой результаты со многими родителями. | |
| array | matchOneOrMany(array $models, Collection $results, string $relation, string $type) Сопоставить загруженные с жадной загрузкой результаты с их многими родителями. |
| смешанный | getRelationValue(массив $dictionary, строка $key, строка $type) Получить значение отношения по одному или нескольким типам. | |
| массив | buildDictionary(Collection $results) Создать словарь модели, индексированный по внешнему ключу отношения. | |
| Модель | save(Модель $model) Прикрепить экземпляр модели к родительской модели. | |
| Traversable|массив | saveMany(Traversable|массив $models) Прикрепить коллекцию моделей к родительскому экземпляру. | |
| Collection|Модель | findOrNew(смешанный $id, массив $columns = ['*']) Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | |
| Модель | firstOrNew(массив $attributes) Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | |
| Модель | firstOrCreate(массив $attributes) Получить первую связанную запись, соответствующую атрибутам, или создать её. | |
| Модель | updateOrCreate(массив $attributes, массив $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| Модель | create(массив $attributes) Создать новый экземпляр связанной модели. | |
| массив | createMany(массив $records) Создать массив новых экземпляров связанной модели. | |
| целое число | update(массив $attributes) Выполнить обновление всех связанных моделей. | |
| строка | getHasCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | |
| строка | getForeignKey() Получить внешний ключ для отношения. | |
| строка | getPlainForeignKey() Получить простой внешний ключ. | |
| смешанный | getParentKey() Получить значение ключа родительского локального ключа. |
Подробное описание
void __construct(Builder $query, Модель $parent, строка $foreignKey, строка $localKey)
Создать новый экземпляр отношения "один к одному" или "один ко многим".
void addConstraints()
Установить базовые ограничения на запрос отношения.
void addEagerConstraints(массив $models)
Установить ограничения для ленивой загрузки отношения.
abstract массив initRelation(массив $models, строка $relation)
Инициализировать отношение для набора моделей.
abstract массив match(массив $models, Collection $results, строка $relation)
Сопоставить загруженные с помощью ленивой загрузки результаты с их родителями.
abstract смешанный getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для ленивой загрузки.
void touch()
Обновить все связанные модели для отношения.
целое число rawUpdate(массив $attributes = [])
Выполнить прямое обновление базового запроса.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчета отношения.
Builder getRelationQuery(Builder $query, Builder $parent, массив|смешанный $columns = ['*'])
Добавить ограничения для запроса отношения.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовое запрошенное представление для отношения.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели.
string wrap(string $value)
Оборачивает заданное значение с помощью грамматики родительского запроса.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить карту morph для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создает табличный массив из имен классов моделей.
mixed __call(string $method, array $parameters)
Обрабатывает динамические вызовы методов к отношению.
void __clone()
Принудительно клонирует базовый конструктор запроса при клонировании.
Builder getRelationQueryForSelfRelation(Builder $query, Builder $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице.
string getRelationCountHash()
Получить хэш таблицы присоединения отношения.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственным родителем.
array matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их многими родителями.
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)
Создать словарь модели, индексированный по внешнему ключу связи.
Traversable|array saveMany(Traversable|array $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Collection|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes)
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Модель firstOrCreate(array $attributes)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель create(array $attributes)
Создать новый экземпляр связанной модели.
array createMany(array $records)
Создать массив новых экземпляров связанной модели.
int update(array $attributes)
Выполнить обновление всех связанных моделей.
string getHasCompareKey()
Получить ключ для сравнения со значением родительского ключа в запросе "has".
string getForeignKey()
Получить внешний ключ для связи.
string getPlainForeignKey()
Получить простой внешний ключ.
mixed getParentKey()
Получить значение ключа родительского локального ключа.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Relations/HasOneOrMany.html