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