MorphOne
class MorphOne extends MorphOneOrMany (View source)
Свойства
| SupportsDefaultModels |
| 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 | Внешний ключ родительской модели. | from HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | from HasOneOrMany |
| static protected int | $selfJoinCount | Количество самосвязей. | from HasOneOrMany |
| protected string | $morphType | Тип внешнего ключа для связи. | from MorphOneOrMany |
| protected string | $morphClass | Имя класса родительской модели. | from MorphOneOrMany |
| protected Closure|array|bool | $withDefault | Указывает, использовать ли экземпляр по умолчанию. | from SupportsDefaultModels |
Методы
| static void | macro(string $name, callable $macro) Зарегистрировать пользовательское макрос. | 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 $type, string $id, string $localKey) Создать новый экземпляр отношения «один ко многим» с морфированием. | from MorphOneOrMany |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений для отношения. | from Relation |
| void | addConstraints() Установить базовые ограничения для запроса отношения. | from MorphOneOrMany |
| void | addEagerConstraints(array $models) Установить ограничения для ленивой загрузки отношения. | from MorphOneOrMany |
| array | initRelation(array $models, string $relation) Инициализировать отношение для набора моделей. | |
| array | match(array $models, Collection $results, string $relation) Сопоставить результаты ленивой загрузки с их родителями. | |
| mixed | getResults() Получить результаты отношения. | |
| Collection | getEager() Получить отношение для ленивой загрузки. | 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 MorphOneOrMany |
| array | getKeys(array $models, string $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() Получить имя колонки «создано в». | from Relation |
| string | updatedAt() Получить имя колонки «обновлено в». | from Relation |
| string | relatedUpdatedAt() Получить имя колонки «обновлено в» связанной модели. | 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() Вынудительно создать копию базового объекта-строителя запроса при клонировании. | from Relation |
| Модель | make(array $attributes = []) Создать и вернуть несохранённую запись связанной модели. | из MorphOneOrMany |
| массив | matchOne(array $models, Коллекция $results, string $relation) Сопоставить загруженные результаты с их единственным родителем. | из HasOneOrMany |
| массив | matchMany(array $models, Коллекция $results, string $relation) Сопоставить загруженные результаты со многими родителями. | из HasOneOrMany |
| массив | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type) Сопоставить загруженные результаты со многими родителями. | из HasOneOrMany |
| смешанный | getRelationValue(array $dictionary, string $key, string $type) Получить значение связи по типу один или много. | из HasOneOrMany |
| массив | buildDictionary(Коллекция $results) Создать словарь модели, индексированный по внешнему ключу связи. | из HasOneOrMany |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*']) Найти связанную модель по первичному ключу или вернуть новый экземпляр связанной модели. | из MorphOneOrMany |
| Модель | firstOrNew(array $attributes) Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из MorphOneOrMany |
| Модель | firstOrCreate(array $attributes) Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из MorphOneOrMany |
| Модель | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из MorphOneOrMany |
| Модель|false | save(Модель $model) Прикрепить экземпляр модели к родительской модели. | из MorphOneOrMany |
| Traversable|массив | saveMany(Traversable|array $models) Прикрепить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| Модель | create(array $attributes) Создать новый экземпляр связанной модели. | из MorphOneOrMany |
| Коллекция | createMany(array $records) Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| целое число | update(array $attributes) Выполнить обновление всех связанных моделей. | из HasOneOrMany |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса связи на той же таблице. | из HasOneOrMany |
| строка | getRelationCountHash() Получить хэш таблицы объединения отношений. | из HasOneOrMany |
| строка | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| смешанный | getParentKey() Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| строка | getForeignKeyName() Получить простой внешний ключ. | из HasOneOrMany |
| строка | getQualifiedForeignKeyName() Получить внешний ключ для связи. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model) Установить внешний идентификатор и тип для создания связанной модели. | из MorphOneOrMany |
| строка | getQualifiedMorphType() Получить имя внешнего ключа "тип". | из MorphOneOrMany |
| строка | getMorphType() Получить простое имя морфного типа без таблицы. | из MorphOneOrMany |
| строка | getMorphClass() Получить имя класса родительской модели. | из MorphOneOrMany |
| Модель | newRelatedInstanceFor(Модель $parent) Создать новый связанный экземпляр для заданной модели. |
| $this | withDefault(Closure|array|bool $callback = true) Возвращает новую модель в случае, если отношения не существует. | from SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent) Получить значение по умолчанию для этого отношения. | from SupportsDefaultModels |
Подробности
static void macro(string $name, callable $macro)
Регистрирует пользовательский макрос.
static bool hasMacro(string $name)
Проверяет, зарегистрирован ли макрос.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывает вызовы к классу.
mixed __call(string $method, array $parameters)
Динамически обрабатывает вызовы к классу.
void __construct(Builder $query, Модель $parent, string $type, string $id, string $localKey)
Создаёт новый экземпляр отношения "один ко многим" или "многие ко многим".
static mixed noConstraints(Closure $callback)
Выполняет обратный вызов без ограничений в отношении.
void addConstraints()
Устанавливает базовые ограничения запроса отношения.
void addEagerConstraints(array $models)
Устанавливает ограничения для жадного загрузки отношения.
array initRelation(array $models, string $relation)
Инициализирует отношение на наборе моделей.
array match(array $models, Коллекция $results, string $relation)
Сопоставляет результаты жадной загрузки с родительскими элементами.
mixed getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для жадной загрузки.
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.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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)
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Модель firstOrCreate(array $attributes)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Traversable|array saveMany(Traversable|array $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Модель create(array $attributes)
Создать новый экземпляр связанной модели.
Коллекция createMany(array $records)
Создать коллекцию новых экземпляров связанной модели.
int update(array $attributes)
Выполнить обновление всех связанных моделей.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношений на одном и том же столе.
string getRelationCountHash()
Получить хэш таблицы объединения отношений.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
mixed getParentKey()
Получить значение ключа локального ключа родителя.
string getForeignKeyName()
Получить обычный внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для отношения.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
string getQualifiedMorphType()
Получить имя внешнего ключа "тип".
string getMorphType()
Получить имя простого морф-типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
Модель newRelatedInstanceFor(Модель $parent)
Создать новый экземпляр связанного объекта для заданной модели.
$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/5.4/Illuminate/Database/Eloquent/Relations/MorphOne.html