MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Трейты
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами морфинг в базе данных. | из Relation |
| статический защищенный bool | $requireMorphMap | Препятствует морфингу отношений без карты морфинг. | из Relation |
| статический защищенный int | $selfJoinCount | Количество самосоединений. | из Relation |
| защищенный string | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищенный string | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| защищенный string | $morphType | Тип внешнего ключа для отношения. | |
| защищенный string | $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)
Создать новый экземпляр связи «один ко многим» или «многие ко многим». | |
| 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()
Получить экземпляр Query Builder, содержащий ограничения связи. | from Relation |
| Builder | getQuery()
Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery()
Получить базовый экземпляр Query Builder, управляющий Eloquent builder. | from Relation |
| Model | getParent()
Получить родительскую модель связи. | from Relation |
| строка | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | из HasOneOrMany |
| Модель | getRelated()
Получить связанную модель отношения. | из Relation |
| строка | createdAt()
Получить имя столбца «создано в». | из Relation |
| строка | updatedAt()
Получить имя столбца «обновлено в». | из Relation |
| строка | relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели. | из Relation |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для ленивой загрузки. | из Relation |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставления моделей. | из Relation |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление моделей. | из Relation |
| статический массив | enforceMorphMap(массив $map, bool $merge = true)
Определить сопоставление морфов для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены. | из Relation |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить сопоставление морфов для полиморфных отношений. | из Relation |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создает таблично-ключевой массив из имен классов моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | из Relation |
| void | __clone()
Вынужденное клонирование подчинённого генератора запросов при клонировании. | из Relation |
| смешанное | getDictionaryKey(смешанное $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке. | из InteractsWithDictionary |
| Модель | make(массив $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели. | из HasOneOrMany |
| Коллекция | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | из HasOneOrMany |
| массив | matchOne(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные результаты с их единственными родителями. | из HasOneOrMany |
| массив | matchMany(массив $models, Коллекция $results, строка $relation)
Сопоставить загруженные результаты с их множественными родителями. | из HasOneOrMany |
| массив | matchOneOrMany(массив $models, Коллекция $results, строка $relation, строка $type)
Сопоставить загруженные результаты с их множественными родителями. | из HasOneOrMany |
| смешанное | getRelationValue(массив $dictionary, строка $key, строка $type)
Получить значение отношения по типу один или много. | из HasOneOrMany |
| массив | buildDictionary(Коллекция $results)
Построить словарь моделей, индексированный по внешнему ключу отношения. | из HasOneOrMany |
| Коллекция|Модель | findOrNew(смешанное $id, массив $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | из HasOneOrMany |
| Модель | firstOrNew(массив $attributes = [], массив $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| Модель | firstOrCreate(массив $attributes = [], массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| Модель | updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из 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)
Установить внешний ID и тип для создания связанной модели. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице. | из HasOneOrMany |
| строка | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе «has». | из HasOneOrMany |
| смешанный тип | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| строка | getForeignKeyName()
Получить обычный внешний ключ. | из HasOneOrMany |
| строка | getQualifiedForeignKeyName()
Получить внешний ключ для отношения. | из HasOneOrMany |
| строка | getLocalKeyName()
Получить локальный ключ для отношения. | из HasOneOrMany |
| строка | getQualifiedMorphType()
Получить имя внешнего ключа «тип». | |
| строка | getMorphType()
Получить простое имя типа морфирования без таблицы. | |
| строка | getMorphClass()
Получить имя класса родительской модели. |
Подробности
protected смешанный тип forwardCallTo(смешанный тип $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
protected смешанный тип forwardDecoratedCallTo(смешанный тип $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя.
static protected void throwBadMethodCallException(строка $method)
Выбросить исключение bad method call для данного метода.
static void macro(строка $name, object|callable $macro)
Зарегистрировать пользовательский макрос.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(строка $name)
Проверяет, зарегистрирован ли макрос.
static void flushMacros()
Очистить существующие макросы.
static смешанный тип __callStatic(строка $method, массив $parameters)
Динамически обработать вызовы класса.
смешанный тип __call(строка $method, массив $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)
Сопоставить результаты, загруженные с помощью eager loading, с родительскими объектами.
abstract mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для ленивой загрузки.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию "select".
void touch()
Обновить метку времени (touch) для всех связанных моделей отношения.
int rawUpdate(array $attributes = [])
Выполнить операцию raw update для базового запроса.
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()
Получить базовый запрос для отношения.
Билдер getBaseQuery()
Получить базовый билдер запросов, управляющий билдером Eloquent.
Модель 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)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели морфированы были явно сопоставлены.
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)
Сопоставить результаты ленивой загрузки с их единственными родителями.
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(Collection $results)
Построить словарь модели, индексированный по внешнему ключу связи.
Collection|Модель 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 = ['*'])
Добавить ограничения для запроса связи на том же таблице.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
mixed getParentKey()
Получить значение ключа родительского локального ключа.
string getForeignKeyName()
Получить обычный внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для связи.
string getLocalKeyName()
Получить локальный ключ для связи.
string getQualifiedMorphType()
Получить имя внешнего ключа "type".
string getMorphType()
Получить имя морфологического типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html