MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Свойства
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| защищённая строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищённая строка | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| статический защищённый int | $selfJoinCount | Количество самосвязей. | из HasOneOrMany |
| защищённая строка | $morphType | Тип внешнего ключа для отношения. | |
| защищённая строка | $morphClass | Имя класса родительской модели. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для данного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| void | __construct(Builder $query, Model $parent, string $type, string $id, string $localKey)
Создать новый экземпляр связи "один ко многим" или "многие ко многим". | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений на связи. | из Relation |
| void | addConstraints()
Установить базовые ограничения на запрос связи. | |
| void | addEagerConstraints(array $models)
Установить ограничения для отложенной загрузки связи. | |
| array | initRelation(array $models, string $relation)
Инициализировать связь на наборе моделей. | из Relation |
| array | match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родителями. | из Relation |
| mixed | getResults()
Получить результаты связи. | из Relation |
| Collection | getEager()
Получить связь для отложенной загрузки. | из Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос в качестве оператора "select". | из Relation |
| void | touch()
Обновить все связанные модели для связи. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление против основного запроса. | из Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования связи. | из Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Получить запрос связи. | |
| array | getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery()
Получить базовый запрос для связи. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий Eloquent-конструктором запроса. | из Relation |
| Model | getParent()
Получить родительскую модель связи. | из Relation |
| string | getQualifiedParentKeyName()
Получить полное имя родительского ключа. | из HasOneOrMany |
| Model | getRelated()
Получить связанную модель связи. | из Relation |
| string | createdAt()
Получить имя столбца "created at". | из Relation |
| string | updatedAt()
Получить имя столбца "updated at". | из Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для отложенной загрузки. | из Relation |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить отображение морфирования для полиморфных отношений. | из Relation |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создает таблично-индексированный массив из имен классов моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone()
Вынуждает клонирование базового генератора запросов при клонировании. | из Relation |
| Модель | make(массив $attributes = [])
Создать и вернуть незасохранённую экземпляр связанной модели. | из 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 |
| Модель|ложь | save(Модель $model)
Прикрепить экземпляр модели к родительской модели. | из HasOneOrMany |
| итерируемый | saveMany(итерируемый $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| Модель | create(массив $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| Коллекция | createMany(итерируемый $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний ID и тип для создания связанной модели. | |
| Генератор | getRelationExistenceQueryForSelfRelation(Генератор $query, Генератор $parentQuery, массив|смешанный $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице. | из HasOneOrMany |
| строка | getRelationCountHash()
Получить хэш таблицы соединения отношений. | из HasOneOrMany |
| строка | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| смешанный | getParentKey()
Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| строка | getForeignKeyName()
Получить простой внешний ключ. | из HasOneOrMany |
| строка | getQualifiedForeignKeyName()
Получить внешний ключ для отношения. | из HasOneOrMany |
| строка | getLocalKeyName()
Получить локальный ключ для отношения. | из HasOneOrMany |
| строка | getQualifiedMorphType()
Получить имя внешнего ключа "тип". |
| string | getMorphType()
Получить имя простого типа морфинга без таблицы. | |
| string | getMorphClass()
Получить имя класса родительской модели. |
Подробности
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, 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()
Получить отношение для ленивой загрузки.
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 $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для взаимосвязи.
Builder getBaseQuery()
Получить базовый билдер запросов, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель взаимосвязи.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель взаимосвязи.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для загрузки с помощью жадной загрузки.
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 = [])
Создать и вернуть несохранённую экземпляр связанной модели.
array matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные результаты с их единственными родительскими элементами.
array matchMany(array $models, Коллекция $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 = [])
Обновить или создать связанную запись, соответствующую атрибутам, и заполнить ее значениями.
iterable saveMany(iterable $models)
Прикрепить коллекцию моделей к экземпляру родительской модели.
Model create(array $attributes = [])
Создать новый экземпляр связанной модели.
Collection createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Model $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()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/6.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html