MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера Eloquent запроса. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый булево значение | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морфизма в базе данных. | из Relation |
| статический защищённый булево значение | $requireMorphMap | Предотвращает морфные отношения без карты морфизма. | из Relation |
| статический защищённый целое число | $selfJoinCount | Количество самосоединений. | из Relation |
| защищённый строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищённый строка | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| защищённый строка | $morphType | Тип внешнего ключа для отношения. | |
| защищённый строка | $morphClass | Имя класса родительской модели. |
Методы
| 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)
Создание нового экземпляра отношения morph one или many. | |
| static mixed | noConstraints(Closure $callback)
Выполнение обратного вызова с отключенными ограничениями в отношении. | from Relation |
| void | addConstraints()
Установка базовых ограничений на запрос отношения. | |
| void | addEagerConstraints(array $models)
Установка ограничений для загрузки отношения в режиме eager load. | |
| array | initRelation(array $models, string $relation)
Инициализация отношения на наборе моделей. | from Relation |
| array | match(array $models, Collection $results, string $relation)
Сопоставление результатов, загруженных в режиме eager load, с их родителями. | from Relation |
| mixed | getResults()
Получение результатов отношения. | from Relation |
| 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 Relation |
| Builder | getQuery()
Получение базового запроса для отношения. | from Relation |
| Builder | getBaseQuery()
Получение базового построителя запросов, управляющего построителем Eloquent. | from Relation |
| Builder | toBase()
Получение базового экземпляра построителя запросов. | 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()
Принудительно клонировать базовый создатель запросов при клонировании. | из Отношения |
| смешанный | getDictionaryKey(смешанный $attribute)
Получить атрибут ключа словаря — привести его к строке, если необходимо. | из Взаимодействие со словарем |
| Модель | make(массив $attributes = [])
Создать и вернуть несохраненный экземпляр связанной модели. | из ОдноКмногие |
| Коллекция | makeMany(итерируемый $records)
Создать и вернуть несохраненный экземпляр связанных моделей. | из ОдноКмногие |
| массив | matchOne(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные по требованию результаты с их единственными родителями. | из ОдноКмногие |
| массив | matchMany(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные по требованию результаты с их множественными родителями. | из ОдноКмногие |
| массив | matchOneOrMany(массив $models, Коллекция $results, строка $relation, строка $type)
Сопоставить загруженные по требованию результаты с их множественными родителями. | из ОдноКмногие |
| смешанный | getRelationValue(массив $dictionary, строка $key, строка $type)
Получить значение отношения по типу один или многие. | из ОдноКмногие |
| массив | buildDictionary(Коллекция $results)
Создать словарь моделей, индексированный по внешнему ключу отношения. | из ОдноКмногие |
| Коллекция|Модель | findOrNew(смешанный $id, массив $columns = ['*'])
Найти модель по ее первичному ключу или вернуть новый экземпляр связанной модели. | из ОдноКмногие |
| Модель | firstOrNew(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее. | из ОдноКмногие |
| Модель | firstOrCreate(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее. | из ОдноКмногие |
| Модель | updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями. | из ОдноКмногие |
| Модель|ложь | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из ОдноКмногие |
| Модель|false | saveQuietly(Модель $model)
Присоединить экземпляр модели к родительской модели без срабатывания событий. | из HasOneOrMany |
| iterable | saveMany(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| iterable | saveManyQuietly(iterable $models)
Присоединить коллекцию моделей к родительскому экземпляру без срабатывания событий у родительской модели. | из HasOneOrMany |
| Модель | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Модель | createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания событий у родительской модели. | из HasOneOrMany |
| Модель | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое присваивание. | из HasOneOrMany |
| Коллекция | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| Коллекция | createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий у родительской модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на одном и том же столе. | из HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с ключом родителя в запросе "has". | из HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| string | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| string | getQualifiedForeignKeyName()
Получить внешний ключ для связи. | из HasOneOrMany |
| string | getLocalKeyName()
Получить локальный ключ для связи. | из HasOneOrMany |
| string | getQualifiedMorphType()
Получить имя внешнего ключа "тип". | |
| string | getMorphType()
Получить простое имя морф-типа без таблицы. | |
| string | getMorphClass()
Получить имя класса родительской модели. |
Подробности
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)
Создать новый экземпляр отношения morph one или many.
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()
Получить отношение для жадной загрузки.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись.
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 = ['*'])
Получить запрос для отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы объединения для отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить объект построения запроса, который будет содержать ограничения для связи.
Builder getQuery()
Получить базовый запрос для связи.
Builder getBaseQuery()
Получить базовый объект построения запроса, управляющий объектом построения Eloquent.
Builder toBase()
Получить экземпляр базового объекта построения запроса.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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)
Определить сопоставление морф для полиморфных связей и потребовать, чтобы все модели morphed были явно сопоставлены.
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)
Получить атрибут ключа словаря — при необходимости преобразовать его в строку.
Модель make(array $attributes = [])
Создать и вернуть несохраненный экземпляр связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть несохраненные экземпляры связанных моделей.
array matchOne(array $models, Collection $results, string $relation)
Сопоставление загруженных с нетерпением результатов с их единственными родителями.
array matchMany(array $models, Collection $results, string $relation)
Сопоставление загруженных с нетерпением результатов с их множественными родителями.
protected array matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставление загруженных с нетерпением результатов с их множественными родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получение значения связи по типу один или много.
protected array buildDictionary(Collection $results)
Создание словаря модели, индексированного по внешнему ключу связи.
Collection|Model findOrNew(mixed $id, array $columns = ['*'])
Поиск модели по ее первичному ключу или возвращение нового экземпляра связанной модели.
Model firstOrNew(array $attributes = [], array $values = [])
Получение первой записи связанной модели, соответствующей атрибутам, или создание ее экземпляра.
Model firstOrCreate(array $attributes = [], array $values = [])
Получение первой записи, соответствующей атрибутам, или создание ее.
Model updateOrCreate(array $attributes, array $values = [])
Создание или обновление записи, соответствующей атрибутам, и заполнение ее значениями.
Model|false saveQuietly(Model $model)
Присоединение экземпляра модели к родительской модели без срабатывания событий.
iterable saveMany(iterable $models)
Присоединение коллекции моделей к родительскому экземпляру.
iterable saveManyQuietly(iterable $models)
Присоединение коллекции моделей к родительскому экземпляру без срабатывания событий у родительской модели.
Model create(array $attributes = [])
Создание нового экземпляра связанной модели.
Model createQuietly(array $attributes = [])
Создание нового экземпляра связанной модели без срабатывания событий у родительской модели.
Model forceCreate(array $attributes = [])
Создание нового экземпляра связанной модели. Разрешить масс-назначение.
Коллекция createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
Коллекция createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания каких-либо событий у родительской модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на одной и той же таблице.
string getExistenceCompareKey()
Получить ключ для сравнения с ключом родительской записи в запросе "has".
mixed getParentKey()
Получить значение ключа родительской записи.
string getForeignKeyName()
Получить простое имя внешнего ключа.
string getQualifiedForeignKeyName()
Получить имя внешнего ключа для связи.
string getLocalKeyName()
Получить локальный ключ для связи.
string getQualifiedMorphType()
Получить имя внешнего ключа "типа".
string getMorphType()
Получить простое имя типа морфинга без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/9.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html