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