MorphTo
класс MorphTo расширяет BelongsTo (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| ComparesRelatedModels | |
| InteractsWithDictionary | |
| SupportsDefaultModels | |
| 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 |
| защищённый Closure|массив|bool | $withDefault | Указывает, должен ли использоваться экземпляр модели по умолчанию. | из SupportsDefaultModels |
| защищённый TDeclaringModel | $child | Экземпляр дочерней модели отношения. | из BelongsTo |
| защищённый string | $foreignKey | Внешний ключ родительской модели. | из BelongsTo |
| защищённый string | $ownerKey | Соответствующий ключ в родительской модели. | из BelongsTo |
| защищённый string | $relationName | Имя отношения. | из BelongsTo |
| защищённый string | $morphType | Тип полиморфного отношения. | |
| защищённый TDeclaringModel> | $models | Модели, отношения которых загружаются с жадностью. | |
| защищённый массив | $dictionary | Все модели, индексированные по ID. | |
| защищённый массив | $macroBuffer | Буфер динамических вызовов макросов запроса. | |
| защищённый массив | $morphableEagerLoads | Карта отношений для загрузки для каждого отдельного типа морфий. | |
| защищённый массив | $morphableEagerLoadCounts | Карта подсчёта отношений для загрузки для каждого отдельного типа морфий. | |
| защищённый массив | $morphableConstraints | Карта ограничений, которые нужно применить для каждого отдельного типа морфий. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, возвращая $this, если перенаправленный вызов вернул себя. | из 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 void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обработать вызовы класса. | из Macroable |
| mixed | __call(string $method, array $parameters)
Обработать динамические вызовы методов к отношению. | |
| void | __construct(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)
Создать новый экземпляр отношения morph to. | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями для отношения. | из Relation |
| void | addConstraints()
Установить базовые ограничения для запроса отношения. | из BelongsTo |
| void | addEagerConstraints(array $models) Без описания | |
| TDeclaringModel> | initRelation(array $models, string $relation) Без описания | из BelongsTo |
| TDeclaringModel> | match(array $models, Collection $results, string $relation) Без описания | |
| TResult | getResults() Без описания | из BelongsTo |
| TRelatedModel> | getEager()
Получить результаты отношения. | |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственный соответствующий элемент. | из Relation |
| TRelatedModel> | get(array $columns = ['*'])
Выполнить запрос как операцию «выбор». | из Relation |
| void | touch()
Обновить все связанные модели для отношения. | |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление базового запроса. | из Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношения. | из Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Без описания | из BelongsTo |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения. | из Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| TRelatedModel> | getRelationQuery()
Получить объект сборщика запросов, который будет содержать ограничения отношения. | из Relation |
| TRelatedModel> | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый объект сборщика запросов, управляющий Eloquent builder. | из Relation |
| Builder | toBase()
Получить базовый экземпляр сборщика запросов. | из Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | из Relation |
| 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 были явно сопоставлены. | из Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить карту полиморфных отношений. | из 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 |
| bool | is(Model|null $model)
Определить, является ли модель связанным экземпляром отношения. | из ComparesRelatedModels |
| bool | isNot(Model|null $model)
Определить, не является ли модель связанным экземпляром отношения. | из ComparesRelatedModels |
| mixed | getParentKey()
Получить значение ключа родительской модели. | из ComparesRelatedModels |
| mixed | getRelatedKeyFrom(Model $model)
Получить значение ключа связанной модели. | из ComparesRelatedModels |
| bool | compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить ключ родителя с ключом связанной модели. | из ComparesRelatedModels |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, преобразовав его в строку, если необходимо. | из InteractsWithDictionary |
| TRelatedModel | newRelatedInstanceFor(Model $parent) Без описания | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвращает новый экземпляр модели в случае, если отношение не существует. | из SupportsDefaultModels |
| Model|null | getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
| array | getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей. | из BelongsTo |
| TDeclaringModel | associate(TRelatedModel|int|string|null $model)
Связать экземпляр модели с заданным родителем. | |
| TDeclaringModel | dissociate()
Отвязать ранее связанную модель от данного родителя. | |
| TDeclaringModel | disassociate()
Псевдоним метода "dissociate". | из BelongsTo |
| TRelatedModel> | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице. | из BelongsTo |
| bool | relationHasIncrementingId()
Определить, имеет ли связанная модель автоинкрементный идентификатор. | from BelongsTo |
| TDeclaringModel | getChild()
Получить дочерний элемент отношения. | from BelongsTo |
| string | getForeignKeyName()
Получить внешнее ключевое поле отношения. | from BelongsTo |
| string | getQualifiedForeignKeyName()
Получить полностью квалифицированное внешнее ключевое поле отношения. | from BelongsTo |
| string | getOwnerKeyName()
Получить связанное ключевое поле отношения. | from BelongsTo |
| string | getQualifiedOwnerKeyName()
Получить полностью квалифицированное связанное ключевое поле отношения. | from BelongsTo |
| mixed | getForeignKeyFrom(Model $model)
Получить значение внешнего ключа модели. | from BelongsTo |
| string | getRelationName()
Получить имя отношения. | from BelongsTo |
| void | buildDictionary(Collection $models)
Создать словарь с моделями. | |
| TRelatedModel> | getResultsByType(string $type)
Получить все результаты отношения для типа. | |
| array | gatherKeysByType(string $type, string $keyType)
Собрать все внешние ключи для заданного типа. | |
| TRelatedModel | createModelByType(string $type)
Создать новый экземпляр модели по типу. | |
| void | matchToMorphParents(string $type, Collection $results)
Сопоставить результаты для заданного типа со своими родителями. | |
| string | getMorphType()
Получить имя внешнего ключа "тип". | |
| array | getDictionary()
Получить словарь, используемый отношением. | |
| $this | morphWith(array $with)
Указать, какие отношения загрузить для данного типа морфизма. | |
| $this | morphWithCount(array $withCount)
Указать, какие подсчеты отношений загрузить для данного типа морфизма. | |
| $this | constrain(array $callbacks)
Указать ограничения на запрос для данного типа морфизма. | |
| $this | withTrashed()
Указать, что мягко удалённые модели должны быть включены в результаты. | |
| $this | withoutTrashed()
Указать, что мягко удалённые модели не должны быть включены в результаты. | |
| $this | onlyTrashed()
Указать, что только мягко удалённые модели должны быть включены в результаты. | |
| TRelatedModel> | replayMacros(Builder $query)
Переиграть сохранённые вызовы макросов на фактическом связанном экземпляре. |
Подробности
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 $foreignKey, string $ownerKey, string $type, string $relation)
Создаёт новый экземпляр отношения morph to.
static mixed noConstraints(Closure $callback)
Выполняет обратный вызов без ограничений на отношение.
void addConstraints()
Устанавливает базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Нет описания
TDeclaringModel> initRelation(array $models, string $relation)
Нет описания
TDeclaringModel> match(array $models, Collection $results, string $relation)
Нет описания
TResult getResults()
Нет описания
TRelatedModel> getEager()
Получить результаты отношения.
Вызывается через метод eager load билдера Eloquent.
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" для ленивой загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных связей без сопоставлений моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные связи явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление morph для полиморфных связей и потребовать, чтобы все модели, подвергшиеся морфированию, были явно сопоставлены.
static array morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление morph для полиморфных связей.
static protected array|null buildMorphMapFromModels(array|null $models = null)
Создает таблично-ключевой массив из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
static int|string getMorphAlias(string $className)
Получить псевдоним, связанный с пользовательским полиморфным классом.
void __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
bool is(Model|null $model)
Определить, является ли модель связанным экземпляром отношения.
bool isNot(Model|null $model)
Определить, не является ли модель связанным экземпляром отношения.
abstract mixed getParentKey()
Получить значение ключа родительской модели.
abstract protected mixed getRelatedKeyFrom(Модель $model)
Получить значение связанного ключа модели.
protected bool compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить родительский ключ со связанным ключом.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — преобразовав его в строку, если необходимо.
protected TRelatedModel newRelatedInstanceFor(Модель $parent)
Без описания
$this withDefault(Closure|array|bool $callback = true)
Возвращает новый экземпляр модели в случае отсутствия отношения.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения.
protected array getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей.
TDeclaringModel associate(TRelatedModel|int|string|null $model)
Связать экземпляр модели с заданным родителем.
TDeclaringModel dissociate()
Отвязать ранее связанную модель от заданного родителя.
TDeclaringModel disassociate()
Псевдоним метода "dissociate".
TRelatedModel> getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице.
protected bool relationHasIncrementingId()
Определить, имеет ли связанная модель идентификатор с автоматическим увеличением.
TDeclaringModel getChild()
Получить дочерний элемент отношения.
string getForeignKeyName()
Получить внешний ключ отношения.
string getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ отношения.
string getOwnerKeyName()
Получить связанный ключ отношения.
string getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ отношения.
protected mixed getForeignKeyFrom(Модель $model)
Получить значение внешнего ключа модели.
string getRelationName()
Получить имя отношения.
protected void buildDictionary(Коллекция $models)
Создать словарь с моделями.
protected TRelatedModel> getResultsByType(string $type)
Получить все результаты отношения для типа.
protected array gatherKeysByType(string $type, string $keyType)
Собрать все внешние ключи для данного типа.
TRelatedModel createModelByType(string $type)
Создать новую модель по типу.
protected void matchToMorphParents(string $type, Collection $results)
Сопоставить результаты для данного типа с их родителями.
string getMorphType()
Получить имя внешнего ключа «тип».
array getDictionary()
Получить словарь, используемый отношением.
$this morphWith(array $with)
Указать, какие отношения загрузить для данного типа морфинга.
$this morphWithCount(array $withCount)
Указать, какие подсчеты отношений загрузить для данного типа морфинга.
$this constrain(array $callbacks)
Указать ограничения запроса для данного типа морфинга.
$this withTrashed()
Указать, что мягко удаленные модели должны быть включены в результаты.
$this withoutTrashed()
Указать, что мягко удаленные модели не должны быть включены в результаты.
$this onlyTrashed()
Указать, что только мягко удаленные модели должны быть включены в результаты.
protected TRelatedModel> replayMacros(Builder $query)
Повторно выполнить сохраненные вызовы макросов на фактическом связанном экземпляре.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/MorphTo.html