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