MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Трейты
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| защищенный bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами морф в базе данных. | из Relation |
| статический защищенный bool | $requireMorphMap | Препятствует морф-связям без морф-карты. | из Relation |
| статический защищенный int | $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)
Установить ограничения для нетерпеливой загрузки отношения. | |
| 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 |
| 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()
Получить имя столбца "обновлено в" связанной модели. | из Отношения |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей. | из Отношения |
| строка | whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для загрузки с помощью eager loading. | из Отношения |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| static массив | enforceMorphMap(array $map, bool $merge = true)
Определить массив сопоставлений для полиморфных отношений и потребовать явного сопоставления всех моделируемых моделей. | из Отношения |
| static массив | morphMap(array $map = null, bool $merge = true)
Установить или получить массив сопоставлений для полиморфных отношений. | из Отношения |
| static массив|null | buildMorphMapFromModels(array $models = null)
Создаёт табличный массив по именам классов моделей. | из Отношения |
| static строка|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Вызвать копирование базового билдера запросов при клонировании. | из Отношения |
| смешанный тип | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, при необходимости привести его к строковому типу. | из Взаимодействует со словарем |
| Модель | make(array $attributes = [])
Создать и вернуть незасохранённую экземпляр связанной модели. | из ОдинКОдномуИлиМногим |
| Коллекция | makeMany(iterable $records)
Создать и вернуть незасохранённые экземпляры связанных моделей. | из ОдинКОдномуИлиМногим |
| массив | matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с eager loading результаты с их единственными родителями. | из ОдинКОдномуИлиМногим |
| массив | matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с eager loading результаты с их множественными родителями. | из ОдинКОдномуИлиМногим |
| массив | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить загруженные с eager loading результаты с их множественными родителями. | из ОдинКОдномуИлиМногим |
| смешанный тип | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один-ко-многим. | из ОдинКОдномуИлиМногим |
| массив | buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения. | из ОдинКОдномуИлиМногим |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели. | из ОдинКОдномуИлиМногим |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать новую. | из ОдинКОдномуИлиМногим |
| Модель | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | из ОдинКОдномуИлиМногим |
| Модель | createOrFirst(array $attributes = [], array $values = [])
Попытка создания записи. Если произойдёт нарушение уникальности, попытка найти соответствующую запись. | из ОдинКОдномуИлиМногим |
| Модель | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasOneOrMany |
| Модель|false | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из HasOneOrMany |
| Модель|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 = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | |
| Модель | forceCreateQuietly(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)
Создать новый экземпляр связи один-ко-многим или многие-ко-многим.
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 = ['*'])
Выполнить запрос как оператор «выбрать».
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()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для загрузки моделей по заданным ключам.
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)
Получить атрибут ключа словаря — при необходимости привести его к строке.
Модель make(array $attributes = [])
Создать и вернуть незасохранённую экземпляр связанной модели.
Коллекция makeMany(iterable $records)
Создать и вернуть незасохранённые экземпляры связанных моделей.
array matchOne(array $models, Коллекция $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их единственными родителями.
array matchMany(array $models, Коллекция $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их многими родителями.
protected array matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить результаты, загруженные с помощью eager loading, с их многими родителями.
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 = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.
Модель createOrFirst(array $attributes = [], array $values = [])
Попытка создания записи. Если происходит нарушение уникальности, попытаться найти соответствующую запись.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель|false saveQuietly(Модель $model)
Присоединить экземпляр модели к родительской модели без поднятия событий.
iterable saveMany(iterable $models)
Присоединить коллекцию моделей к экземпляру родительского объекта.
iterable saveManyQuietly(iterable $models)
Присоединить коллекцию моделей к экземпляру родительского объекта без срабатывания каких-либо событий для родительской модели.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Модель createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания каких-либо событий для родительской модели.
Модель forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение.
Модель forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с массовым назначением без срабатывания событий модели.
Коллекция createMany(iterable $records)
Создать Коллекцию новых экземпляров связанной модели.
Коллекция createManyQuietly(iterable $records)
Создать Коллекцию новых экземпляров связанной модели без срабатывания каких-либо событий для родительской модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний ID и тип для создания связанной модели.
Билдер 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/10.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html