MorphOne
class MorphOne extends MorphOneOrMany implements SupportsPartialRelations (View source)
Свойства
| CanBeOneOfMany | |
| ComparesRelatedModels | |
| SupportsDefaultModels | |
| InteractsWithDictionary | |
| ForwardsCalls | |
| 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 array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | from Relation |
| static protected bool | $requireMorphMap | Препятствует морфическим отношениям без карты морфизма. | from Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | from Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | from HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | from HasOneOrMany |
| protected string | $morphType | Тип внешнего ключа для отношения. | from MorphOneOrMany |
| protected string | $morphClass | Имя класса родительской модели. | from MorphOneOrMany |
| protected bool | $isOneOfMany | Определяет, является ли отношение одним из многих. | from CanBeOneOfMany |
| protected string | $relationName | Имя отношения. | from CanBeOneOfMany |
| protected Builder|null | $oneOfManySubQuery | Экземпляр билдера подзапроса для одного из многих внутренних соединений. | from CanBeOneOfMany |
| protected Closure|array|bool | $withDefault | Указывает, нужно ли использовать экземпляр модели по умолчанию. | from SupportsDefaultModels |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | from ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, возвращая $this, если переданный вызов вернул себя. | from ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение для недопустимого вызова метода с заданным методом. | from ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | from Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | from Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | from Macroable |
| static void | flushMacros()
Очистить существующие макросы. | 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)
Сопоставить загруженные с помощью eager loading результаты с их родительскими объектами. | |
| mixed | getResults()
Получить результаты связи. | |
| Collection | getEager()
Получить связь для eager loading. | from Relation |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись. | 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 = ['*'])
Получить запрос связи. | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы объединения связи. | from Relation |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения связи. | from CanBeOneOfMany |
| Builder | getQuery()
Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | from Relation |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | из ОдинКОдинИлиМногоКОдин |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца «создано в». | из Отношения |
| строка | updatedAt()
Получить имя столбца «обновлено в». | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для ленивой загрузки. | из Отношения |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| статический массив | enforceMorphMap(массив $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели, преобразуемые в морф, были явно сопоставлены. | из Отношения |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создаёт массив с ключами таблиц из имён классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Вынужденное клонирование подчинённого билдера запросов при клонировании. | из Отношения |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — преобразовав его в строку, если необходимо. | from InteractsWithDictionary |
| Модель | make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели. | from HasOneOrMany |
| Коллекция | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | from HasOneOrMany |
| array | matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственными родительскими элементами. | from HasOneOrMany |
| array | matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с жадностью результаты со своими множественными родительскими элементами. | from HasOneOrMany |
| array | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить загруженные с жадностью результаты со своими множественными родительскими элементами. | from HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по типу one или many. | from HasOneOrMany |
| array | buildDictionary(Коллекция $results)
Построить словарь модели, индексированный по внешнему ключу связи. | from HasOneOrMany |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | from HasOneOrMany |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную запись модели, соответствующую атрибутам, или создать её. | from HasOneOrMany |
| Модель | firstOrCreate(array $attributes = [], array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её. | from HasOneOrMany |
| Модель | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | from HasOneOrMany |
| Модель|false | save(Модель $model)
Присоединить экземпляр модели к родительской модели. | из HasOneOrMany |
| iterable | saveMany(iterable $models)
Присоединить коллекцию моделей к экземпляру родительской модели. | из HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | из HasOneOrMany |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели. | из MorphOneOrMany |
| Библиотекарь | getRelationExistenceQueryForSelfRelation(Библиотекарь $query, Библиотекарь $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе. | из HasOneOrMany |
| строка | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе «has». | из HasOneOrMany |
| смешанный | getParentKey()
Получить значение ключа родительской модели. | из ComparesRelatedModels |
| строка | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| строка | getQualifiedForeignKeyName()
Получить внешний ключ для отношения. | из HasOneOrMany |
| строка | getLocalKeyName()
Получить локальный ключ для отношения. | из HasOneOrMany |
| строка | getQualifiedMorphType()
Получить имя внешнего ключа «тип». | из MorphOneOrMany |
| string | getMorphType()
Получить простое имя типа морфизма без таблицы. | из MorphOneOrMany |
| string | getMorphClass()
Получить имя класса родительской модели. | из MorphOneOrMany |
| void | addOneOfManySubQueryConstraints(Builder $query, string|null $column = null, string|null $aggregate = null)
Добавить ограничения для подзапроса внутреннего соединения для связи один-ко-многим. | |
| array|string | getOneOfManySubQuerySelectColumns()
Получить столбцы, которые должны быть выбраны подзапросом для связи один-ко-многим. | |
| void | addOneOfManyJoinSubQueryConstraints(JoinClause $join)
Добавить ограничения запроса соединения для связи один-ко-многим. | |
| $this | ofMany(string|array|null $column = 'id', string|Closure|null $aggregate = 'MAX', string|null $relation = null)
Указать, что отношение является единственным результатом связи один-ко-многим. | из CanBeOneOfMany |
| $this | latestOfMany(string|array|null $column = 'id', string|null $relation = null)
Указать, что отношение является самым последним единственным результатом связи один-ко-многим. | из CanBeOneOfMany |
| $this | oldestOfMany(string|array|null $column = 'id', string|null $relation = null)
Указать, что отношение является самым старым единственным результатом связи один-ко-многим. | из CanBeOneOfMany |
| string | getDefaultOneOfManyJoinAlias(string $relation)
Получить стандартный псевдоним для подзапроса внутреннего соединения один-ко-многим. | из CanBeOneOfMany |
| Builder | newOneOfManySubQuery(string|array $groupBy, string|null $column = null, string|null $aggregate = null)
Получить новый запрос для связанной модели, группируя запрос по указанному столбцу, часто внешнему ключу отношения. | из CanBeOneOfMany |
| void | addOneOfManyJoinSubQuery(Builder $parent, Builder $subQuery, string $on)
Добавить подзапрос соединения к данному запросу по заданному столбцу и внешнему ключу отношения. | из CanBeOneOfMany |
| void | mergeOneOfManyJoinsTo(Builder $query)
Объединить соединения запроса отношения с заданным билдером запроса. | из CanBeOneOfMany |
| Builder|void | getOneOfManySubQuery()
Получить экземпляр сущности-строителя подзапроса для внутреннего соединения "один из многих". | from CanBeOneOfMany |
| string | qualifySubSelectColumn(string $column)
Получить квалифицированное имя столбца для отношения "один из многих" с использованием псевдонима запроса подзапроса. | from CanBeOneOfMany |
| string | qualifyRelatedColumn(string $column)
Квалифицировать связанный столбец с использованием имени связанной таблицы, если он не квалифицирован. | from CanBeOneOfMany |
| string | guessRelationship()
Угадать имя отношения "один ко многим" через стек вызовов. | from CanBeOneOfMany |
| bool | isOneOfMany()
Определить, является ли отношение отношением "один ко многим". | from CanBeOneOfMany |
| string | getRelationName()
Получить имя отношения. | from CanBeOneOfMany |
| bool | is(Model|null $model)
Определить, является ли модель связанным экземпляром отношения. | from ComparesRelatedModels |
| bool | isNot(Model|null $model)
Определить, не является ли модель связанным экземпляром отношения. | from ComparesRelatedModels |
| mixed | getRelatedKeyFrom(Model $model)
Получить значение внешнего ключа модели. | |
| bool | compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить родительский ключ со связанным ключом. | from ComparesRelatedModels |
| Model | newRelatedInstanceFor(Model $parent)
Создать новый связанный экземпляр для заданной модели. | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвращает новую модель в случае, если отношение не существует. | from SupportsDefaultModels |
| Model|null | getDefaultFor(Model $parent)
Получить значение по умолчанию для данного отношения. | from SupportsDefaultModels |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, возвращая $this, если переданный вызов вернул себя.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение неверного вызова метода для данного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макрос.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрирован ли макрос.
static void flushMacros()
Очистить существующие макросы.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса.
mixed __call(string $method, array $parameters)
Динамически обрабатывает вызовы класса.
void __construct(Builder $query, Model $parent, string $type, string $id, string $localKey)
Создаёт новый экземпляр связи one-to-one или one-to-many.
static mixed noConstraints(Closure $callback)
Выполняет обратный вызов без ограничений для связи.
void addConstraints()
Устанавливает базовые ограничения для запроса связи.
void addEagerConstraints(array $models)
Устанавливает ограничения для жадной загрузки связи.
array initRelation(array $models, string $relation)
Инициализирует связь для набора моделей.
array match(array $models, Collection $results, string $relation)
Сопоставляет загруженные с жадной загрузкой результаты с их родительскими объектами.
mixed getResults()
Получить результаты связи.
Collection getEager()
Получить связь для жадной загрузки.
Модель sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись.
Коллекция get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select».
void touch()
Обновить все связанные модели для связи.
int rawUpdate(array $attributes = [])
Выполнить прямое обновление по базовому запросу.
Билдер getRelationExistenceCountQuery(Билдер $query, Билдер $parentQuery)
Добавить ограничения для запроса подсчета существования связи.
Билдер getRelationExistenceQuery(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Получить запрос для связи.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения для связи.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить билдер запроса, который будет содержать ограничения отношения.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода «where in» для ленивой загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставлений моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определите карту морфизма для полиморфных отношений и потребуйте, чтобы все модели морфизма были явно отображены.
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()
Принудительно клонировать базовый билдер запроса при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке.
Model make(array $attributes = [])
Создать и вернуть несохраненную копию связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть несохранённые копии связанных моделей.
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 = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
iterable saveMany(iterable $models)
Привязать коллекцию моделей к родительскому экземпляру.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Модель forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить масс-назначение.
Коллекция createMany(iterable $records)
Создать Коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице.
строка getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
абстрактный смешанный getParentKey()
Получить значение ключа родительской модели.
строка getForeignKeyName()
Получить простой внешний ключ.
строка getQualifiedForeignKeyName()
Получить внешний ключ для связи.
строка getLocalKeyName()
Получить локальный ключ для связи.
строка getQualifiedMorphType()
Получить имя внешнего ключа "тип".
строка getMorphType()
Получить простое имя типа морфизма без таблицы.
строка getMorphClass()
Получить имя класса родительской модели.
пустое значение addOneOfManySubQueryConstraints(Builder $query, string|null $column = null, string|null $aggregate = null)
Добавить ограничения для подзапроса внутреннего соединения для связи "один из многих".
массив|строка getOneOfManySubQuerySelectColumns()
Получить столбцы, которые должны быть выбраны подзапросом для связи "один из многих".
пустое значение addOneOfManyJoinSubQueryConstraints(JoinClause $join)
Добавить ограничения запроса соединения для связи "один из многих".
$this ofMany(string|array|null $column = 'id', string|Closure|null $aggregate = 'MAX', string|null $relation = null)
Укажите, что отношение является единственным результатом более сложного отношения один ко многим.
$this latestOfMany(string|array|null $column = 'id', string|null $relation = null)
Укажите, что отношение является самым последним единственным результатом более сложного отношения один ко многим.
$this oldestOfMany(string|array|null $column = 'id', string|null $relation = null)
Укажите, что отношение является самым старым единственным результатом более сложного отношения один ко многим.
protected string getDefaultOneOfManyJoinAlias(string $relation)
Получить значение по умолчанию для псевдонима внутреннего соединения one-of-many.
protected Builder newOneOfManySubQuery(string|array $groupBy, string|null $column = null, string|null $aggregate = null)
Получить новый запрос для связанной модели, сгруппировав запрос по заданному столбцу, часто — внешнему ключу отношения.
protected void addOneOfManyJoinSubQuery(Builder $parent, Builder $subQuery, string $on)
Добавить подзапрос присоединения к заданному запросу по заданному столбцу и внешнему ключу отношения.
protected void mergeOneOfManyJoinsTo(Builder $query)
Объединить присоединения запроса отношения в заданный строитель запросов.
Builder|void getOneOfManySubQuery()
Получить экземпляр подзапроса вложенного соединения для "один ко многим" отношения.
string qualifySubSelectColumn(string $column)
Получить квалифицированное имя столбца для отношения "один ко многим" с использованием псевдонима подзапроса в соединении.
protected string qualifyRelatedColumn(string $column)
Квалифицировать столбец связанной таблицы, если он не квалифицирован.
protected string guessRelationship()
Угадать имя отношения "один к одному" по пути вызова функции.
bool isOneOfMany()
Определить, является ли отношение отношением "один ко многим".
string getRelationName()
Получить имя отношения.
bool is(Модель|null $model)
Определить, является ли модель связанной моделью в рамках отношения.
bool isNot(Модель|null $model)
Определить, не является ли модель связанной моделью в рамках отношения.
protected mixed getRelatedKeyFrom(Модель $model)
Получить значение внешнего ключа модели.
protected bool compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить родительский ключ с связанным ключом.
$this withDefault(Closure|array|bool $callback = true)
Возвращает новый экземпляр модели в случае, если отношение отсутствует.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Relations/MorphOne.html