MorphOne
class MorphOne extends MorphOneOrMany (View source)
Свойства
| SupportsDefaultModels | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected Builder | $query | Экземпляр Eloquent-запросного билдера. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морфинга в базе данных. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| static protected int | $selfJoinCount | Количество самосоединений. | из HasOneOrMany |
| protected string | $morphType | Тип внешнего ключа для отношения. | из MorphOneOrMany |
| protected string | $morphClass | Имя класса родительской модели. | из MorphOneOrMany |
| protected Closure|array|bool | $withDefault | Указывает, использовать ли экземпляр модели по умолчанию. | из SupportsDefaultModels |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Переадресуйте вызов метода указанному объекту. | 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 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)
Создать новый экземпляр отношения morph one или many. | 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 |
| Collection | get(array $columns = ['*'])
Выполнить запрос как операцию «выбрать». | 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|null $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 |
| string | whereInMethod(Model $model, string $key)
Получить имя метода «where in» для ленивой загрузки. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить карту морфинга для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone()
Принудительно клонировать базовый генератор запросов при клонировании. | из Relation |
| Model | make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели. | из HasOneOrMany |
| Collection | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | из HasOneOrMany |
| array | matchOne(array $models, Collection $results, string $relation)
Сопоставить результаты ленивой загрузки с их единственными родителями. | из HasOneOrMany |
| array | matchMany(array $models, Collection $results, string $relation)
Сопоставить результаты ленивой загрузки со многими родителями. | из HasOneOrMany |
| array | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить результаты ленивой загрузки со многими родителями. | из HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один или многие. | из HasOneOrMany |
| array | buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения. | из HasOneOrMany |
| Collection|Model | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели. | из HasOneOrMany |
| Model | firstOrNew(array $attributes, array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | из HasOneOrMany |
| Model | firstOrCreate(array $attributes, array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| Model | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasOneOrMany |
| Model|false | save(Model $model)
Прикрепить экземпляр модели к родительской модели. | из HasOneOrMany |
| iterable | saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| Model | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Collection | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Model $model)
Установить внешний идентификатор и тип для создания связанной модели. | из MorphOneOrMany |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице. | из HasOneOrMany |
| string | getRelationCountHash()
Получить хеш таблицы присоединения отношения. | из HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе «has». | из HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| string | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| string | getQualifiedForeignKeyName()
Получить внешний ключ для связи. | из HasOneOrMany |
| string | getLocalKeyName()
Получить локальный ключ для связи. | из HasOneOrMany |
| string | getQualifiedMorphType()
Получить имя внешнего ключа "тип". | из MorphOneOrMany |
| string | getMorphType()
Получить простое имя типа морфинга без таблицы. | из MorphOneOrMany |
| string | getMorphClass()
Получить имя класса родительской модели. | из MorphOneOrMany |
| Модель | newRelatedInstanceFor(Модель $parent)
Создать новый связанный экземпляр для заданной модели. | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае, если связь не существует. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent)
Получить значение по умолчанию для этой связи. | из SupportsDefaultModels |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода к заданному объекту.
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 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, Collection $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их родительскими элементами.
mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для eager loading.
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|null $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить основной запрос для отношения.
Builder getBaseQuery()
Получить основной объект билдера запроса, управляющий Eloquent билдером.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской модели.
Model getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" для связанной модели.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager loading.
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 = [])
Создать и вернуть несохранённую экземпляр связанной модели.
Коллекция 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 = [])
Создать новый экземпляр связанной модели.
Коллекция createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же таблице.
string getRelationCountHash()
Получить хеш таблицы соединения отношения.
string getExistenceCompareKey()
Получить ключ для сравнения с ключом родительской записи в запросе «has».
mixed getParentKey()
Получить значение ключа родительской записи.
string getForeignKeyName()
Получить простой внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для отношения.
string getLocalKeyName()
Получить локальный ключ для отношения.
string getQualifiedMorphType()
Получить имя внешнего ключа "типа".
string getMorphType()
Получить простое имя морф-типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
Model newRelatedInstanceFor(Model $parent)
Создать новый экземпляр связанной записи для заданной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае, если отношение не существует.
protected Model|null getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/7.x/Illuminate/Database/Eloquent/Relations/MorphOne.html