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 | Массив для сопоставления имен классов с их морфными именами в базе данных. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | |
| protected string | $localKey | Локальный ключ родительской модели. |
Методы
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $localKey) Создать новый экземпляр связи один-к-одному или один-ко-многим. | |
| 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 |
| void | touch() Обновить метки времени для всех связанных моделей в рамках связи. | from Relation |
| int | rawUpdate(array $attributes = []) Выполнить необработанное обновление на основе базового запроса. | from Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчета связи. | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений для связи. | from Relation |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий Eloquent билдером. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName() Получить полностью квалифицированное имя родительского ключа. | |
| Model | getRelated() Получить связанную модель связи. | from Relation |
| string | createdAt() Получить имя столбца "created at". | from Relation |
| string | updatedAt() Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | from Relation |
| string | wrap(string $value) Обернуть заданное значение с помощью грамматики родительского запроса. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту морфирования для полиморфных связей. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создаёт таблично-индексированный массив из имён классов моделей. | from Relation |
| mixed | __call(string $method, array $parameters) Обработать вызовы динамических методов для связи. | from Relation |
| void | __clone() Вынужденно клонировать базовый билдер запроса при клонировании. | from Relation |
| Builder | getRelationCountQueryForSelfRelation(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта связи на одной и той же таблице. | |
| 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) Сопоставить загруженные с жадной загрузкой результаты со многими родителями. | |
| mixed | getRelationValue(array $dictionary, string $key, string $type) Получить значение связи по типу один или много. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу связи. |
| Модель|false | save(Модель $model) Прикрепить экземпляр модели к родительской модели. | |
| Коллекция|массив | saveMany(Коллекция|массив $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() Получить значение ключа родительского локального ключа. |
Подробности
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, Коллекция $results, string $relation)
Сопоставить результаты, загруженные с отложенной загрузкой, с их родителями.
abstract смешанный тип getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для отложенной загрузки.
void touch()
Обновить все связанные модели для отношения.
целое число rawUpdate(array $attributes = [])
Выполнить сырое обновление в основном запросе.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчёта отношения.
static смешанный тип noConstraints(Closure $callback)
Выполнить обратный вызов с отключёнными ограничениями для отношения.
protected массив 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 getRelationCountQueryForSelfRelation(Builder $query, Builder $parent)
Добавление ограничений для запроса подсчета отношения на той же таблице.
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(Коллекция $results)
Построение словаря модели, индексированного по внешнему ключу отношения.
Коллекция|массив saveMany(Коллекция|массив $models)
Присоединить коллекцию моделей к родительскому экземпляру.
Коллекция|Модель findOrNew(смешанный $id, массив $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(массив $attributes)
Получить первую связанную запись модели, соответствующую атрибутам, или создать её экземпляр.
Модель firstOrCreate(массив $attributes)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель create(массив $attributes)
Создать новый экземпляр связанной модели.
массив createMany(массив $records)
Создать массив новых экземпляров связанной модели.
целое число update(массив $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.1/Illuminate/Database/Eloquent/Relations/HasOneOrMany.html