MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Особенности
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый TRelatedModel> | $query | Экземпляр Eloquent-строки запросов. | из Relation |
| защищённый TDeclaringModel | $parent | Экземпляр родительской модели. | из Relation |
| защищённый TRelatedModel | $related | Экземпляр связанной модели. | из Relation |
| защищённый bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой набор. | из 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) Без описания | |
| TDeclaringModel> | initRelation(array $models, string $relation)
Инициализировать отношение на наборе моделей. | from Relation |
| TDeclaringModel> | match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с родителями. | from Relation |
| TResult | getResults()
Получить результаты отношения. | from Relation |
| TRelatedModel> | getEager()
Получить отношение для ленивой загрузки. | from Relation |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | from Relation |
| TRelatedModel> | get(array $columns = ['*'])
Выполнить запрос как операцию "select". | from Relation |
| void | touch()
Обновить все связанные модели для отношения. | from Relation |
| int | rawUpdate(array $attributes = [])
Выполнить обычное обновление запроса. | from Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта отношения. | from Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Без описания | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы соединения отношения. | from Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | from Relation |
| TRelatedModel> | getRelationQuery()
Получить объект Query Builder, который будет содержать ограничения отношения. | from Relation |
| TRelatedModel> | getQuery()
Получить базовый запрос для отношения. | from Relation |
| Builder | getBaseQuery()
Получить базовый объект Query Builder, управляющий Eloquent builder. | from Relation |
| Builder | toBase()
Получить экземпляр базового Query Builder. | from Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное имя родительского ключа. | из HasOneOrMany |
| TRelatedModel | getRelated()
Получить связанную модель отношения. | из Relation |
| string | createdAt()
Получить имя столбца "created at". | из Relation |
| string | updatedAt()
Получить имя столбца "updated at". | из Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из Relation |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для загрузки с жадной загрузкой. | из Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставлений моделей. | из Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление morph для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены. | из Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление morph для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array|null $models = null)
Создаёт таблично-индексированный массив из имён классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | из Relation |
| static int|string | getMorphAlias(string $className)
Получить псевдоним, связанный с настраиваемым полиморфным классом. | из Relation |
| void | __clone()
Принудительно клонирует подлежащий конструктор запроса при клонировании. | из Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря - при необходимости преобразовав его в строку. | из InteractsWithDictionary |
| TRelatedModel | make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели. | из HasOneOrMany |
| TRelatedModel> | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | из HasOneOrMany |
| TDeclaringModel> | matchOne(array $models, Collection $results, string $relation)
Сопоставить результаты, загруженные с жадной загрузкой, с их единственными родителями. | из HasOneOrMany |
| TDeclaringModel> | matchMany(array $models, Collection $results, string $relation)
Сопоставить результаты, загруженные с жадной загрузкой, со многими родителями. | из HasOneOrMany |
| TDeclaringModel> | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить результаты, загруженные с жадной загрузкой, со многими родителями. | из HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один или много. | из HasOneOrMany |
| TRelatedModel>[] | buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения. | из HasOneOrMany |
| findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | из HasOneOrMany | |
| TRelatedModel | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную запись модели, соответствующую атрибутам, или создать её. | из HasOneOrMany |
| TRelatedModel | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | из HasOneOrMany |
| TRelatedModel | createOrFirst(array $attributes = [], array $values = [])
Попытка создать запись. Если возникает нарушение уникальности, попытка найти соответствующую запись. | из HasOneOrMany |
| TRelatedModel | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasOneOrMany |
| TRelatedModel|false | save(Модель $model)
Присоединить экземпляр модели к родительской модели. | из HasOneOrMany |
| TRelatedModel|false | saveQuietly(Модель $model)
Присоединить экземпляр модели к родительской модели без срабатывания событий. | из HasOneOrMany |
| TRelatedModel> | saveMany(TRelatedModel> $models)
Присоединить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| TRelatedModel> | saveManyQuietly(TRelatedModel> $models)
Присоединить коллекцию моделей к родительскому экземпляру без срабатывания событий. | из HasOneOrMany |
| TRelatedModel | create(array $attributes = [])
Создать новый экземпляр связанной модели. | из HasOneOrMany |
| TRelatedModel | createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без срабатывания событий. | из HasOneOrMany |
| TRelatedModel | forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массовое назначение. | |
| TRelatedModel | forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с массовым назначением без срабатывания событий модели. | из HasOneOrMany |
| TRelatedModel> | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | из HasOneOrMany |
| TRelatedModel> | createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без срабатывания событий родительской модели. | из HasOneOrMany |
| void | setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели. | |
| TRelatedModel> | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе. | из HasOneOrMany |
| $this | take(int $value)
Псевдоним для установки значения «limit» запроса. | из HasOneOrMany |
| $this | limit(int $value)
Установить значение «limit» запроса. | из 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 TDeclaringModel> initRelation(array $models, string $relation)
Инициализировать связь для набора моделей.
abstract TDeclaringModel> match(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадным запросом результаты с родительскими элементами.
abstract TResult getResults()
Получить результаты связи.
TRelatedModel> getEager()
Получить связь для жадной загрузки.
TRelatedModel sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
TRelatedModel> get(array $columns = ['*'])
Выполнить запрос как операцию "select".
void touch()
Обновить все связанные модели для связи.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для базового запроса.
TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования связи.
TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Описание отсутствует
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы связи.
protected array<int,int|string> getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected TRelatedModel> getRelationQuery()
Получить конструктор запроса, содержащий ограничения связи.
TRelatedModel> getQuery()
Получить основной запрос для связи.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий Eloquent-конструктором запроса.
Builder toBase()
Получить экземпляр базового конструктора запроса.
TDeclaringModel getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
TRelatedModel getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки указанного набора ключей моделей.
protected string whereInMethod(Model $model, string $key)
Получить имя метода where in для загрузки с помощью eager loading.
static void requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных связей без сопоставления моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные связи явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление типов для полиморфных связей и потребовать явного сопоставления всех моделей.
static array morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление типов для полиморфных связей.
static protected array|null buildMorphMapFromModels(array|null $models = null)
Создает массив, индексированный по таблицам, из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
static int|string getMorphAlias(string $className)
Получить псевдоним, связанный с пользовательским полиморфным классом.
void __clone()
Принудительно клонировать базовый конструктор запроса при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — привести его к строке, если необходимо.
TRelatedModel make(array $attributes = [])
Создать и вернуть несохранённую инстанцию связанной модели.
TRelatedModel> makeMany(iterable $records)
Создать и вернуть несохранённые инстанции связанных моделей.
TDeclaringModel> matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственным родителем.
TDeclaringModel> matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их множественными родителями.
protected TDeclaringModel> matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные с жадностью результаты с их множественными родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу один или много.
protected TRelatedModel>[] buildDictionary(Collection $results)
Сформировать словарь моделей с ключом, определяемым внешним ключом отношения.
findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
TRelatedModel firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр.
TRelatedModel firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.
TRelatedModel createOrFirst(array $attributes = [], array $values = [])
Попробовать создать запись. Если происходит нарушение уникального ограничения, попытаться найти соответствующую запись.
TRelatedModel updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
TRelatedModel|false save(Model $model)
Прикрепить экземпляр модели к родительской модели.
TRelatedModel|false saveQuietly(Model $model)
Прикрепить экземпляр модели к родительской модели без срабатывания событий.
TRelatedModel> saveMany(TRelatedModel> $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
TRelatedModel> saveManyQuietly(TRelatedModel> $models)
Прикрепить коллекцию моделей к родительскому экземпляру без срабатывания событий у родительской модели.
TRelatedModel create(array $attributes = [])
Создать новый экземпляр связанной модели.
TRelatedModel createQuietly(array $attributes = [])
Создать новый экземпляр связанной модели без повышения любых событий для родительской модели.
TRelatedModel forceCreate(array $attributes = [])
Создать новый экземпляр связанной модели. Разрешить массивное присваивание.
TRelatedModel forceCreateQuietly(array $attributes = [])
Создать новый экземпляр связанной модели с массивноым присваиванием без повышения событий модели.
TRelatedModel> createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
TRelatedModel> createManyQuietly(iterable $records)
Создать коллекцию новых экземпляров связанной модели без повышения любых событий для родительской модели.
protected void setForeignAttributesForCreate(Model $model)
Установить внешний идентификатор и тип для создания связанной модели.
TRelatedModel> getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на одной и той же таблице.
$this take(int $value)
Псевдоним для установки значения «limit» запроса.
$this limit(int $value)
Установить значение «limit» запроса.
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/11.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html