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 | Модели, чьи отношения загружаются жадно. | |
| защищенный массив | $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 |
| Model | getParent()
Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской записи. | из Relation |
| 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 |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление «morph map» для полиморфных отношений и потребовать явного сопоставления всех моделей, которые могут быть связаны полиморфно. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить сопоставление «morph map» для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из 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 |
| Model | newRelatedInstanceFor(Model $parent)
Создать новый связанный экземпляр для указанной модели. | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае отсутствия отношения. | из SupportsDefaultModels |
| Model|null | getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
| array | getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей. | из BelongsTo |
| Model | associate(Model|int|string|null $model)
Связать экземпляр модели с заданным родителем. | |
| Model | dissociate()
Отвязать ранее связанную модель от заданного родителя. | |
| Model | disassociate()
Псевдоним метода «dissociate». | из BelongsTo |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице. | из BelongsTo |
| bool | relationHasIncrementingId()
Определить, имеет ли связанная модель автоинкрементный ID. | из BelongsTo |
| Модель | getChild()
Получить дочерний элемент связи. | из BelongsTo |
| строка | getForeignKeyName()
Получить внешний ключ связи. | из BelongsTo |
| строка | getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ связи. | из BelongsTo |
| строка | getOwnerKeyName()
Получить связанный ключ связи. | из BelongsTo |
| строка | getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ связи. | из BelongsTo |
| строка | getRelationName()
Получить имя связи. | из BelongsTo |
| void | buildDictionary(Коллекция $models)
Создать словарь с моделями. | |
| Коллекция | getResultsByType(строка $type)
Получить все результаты связи для типа. | |
| массив | gatherKeysByType(строка $type, строка $keyType)
Собрать все внешние ключи для данного типа. | |
| Модель | createModelByType(строка $type)
Создать новый экземпляр модели по типу. | |
| void | matchToMorphParents(строка $type, Коллекция $results)
Сопоставить результаты для данного типа с их родителями. | |
| строка | getMorphType()
Получить имя внешнего ключа "тип". | |
| массив | getDictionary()
Получить словарь, используемый связью. | |
| MorphTo | morphWith(массив $with)
Указать, какие отношения загрузить для данного типа морфизма. | |
| MorphTo | morphWithCount(массив $withCount)
Указать, какие подсчеты отношений загрузить для данного типа морфизма. | |
| MorphTo | constrain(массив $callbacks)
Указать ограничения запроса для данного типа морфизма. | |
| Билдер | replayMacros(Билдер $query)
Перепроиграть сохраненные вызовы макросов на фактическом связанном экземпляре. |
Подробности
protected смешанное forwardCallTo(смешанное $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
protected смешанное forwardDecoratedCallTo(смешанное $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту, возвращая $this, если перенаправленный вызов вернул себя.
static protected void throwBadMethodCallException(строка $method)
Выбросить исключение плохого вызова метода для данного метода.
static void macro(строка $name, object|вызываемый $macro)
Зарегистрировать пользовательский макрос.
static void mixin(объект $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 $foreignKey, string $ownerKey, string $type, string $relation)
Создать новый экземпляр отношения many-to-many.
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 query builder.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию «выбрать».
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()
Получить query builder, который будет содержать ограничения отношения.
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()
Принудительно клонировать базовый билдер запросов при клонировании.
bool is(Модель|null $model)
Определить, является ли модель связанным экземпляром отношения.
bool isNot(Модель|null $model)
Определить, не является ли модель связанным экземпляром отношения.
abstract mixed getParentKey()
Получить значение ключа родительской модели.
abstract protected mixed getRelatedKeyFrom(Модель $model)
Получить значение ключа связанной модели.
protected bool compareKeys(mixed $parentKey, mixed $relatedKey)
Сравнить ключ родителя с ключом связанной модели.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости преобразовав его в строку.
protected Модель newRelatedInstanceFor(Модель $parent)
Создать новый экземпляр связанной модели для заданной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвращает новую модель в случае, если отношение отсутствует.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для данного отношения.
protected array getEagerModelKeys(array $models)
Собрать ключи из массива связанных моделей.
Модель dissociate()
Отвязать ранее связанную модель от заданного родителя.
Модель disassociate()
Псевдоним метода «dissociate».
Библиотека getRelationExistenceQueryForSelfRelation(Библиотека $query, Библиотека $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
protected bool relationHasIncrementingId()
Определить, имеет ли связанная модель ID с автоматическим инкрементом.
Модель getChild()
Получить дочерний элемент отношения.
string getForeignKeyName()
Получить внешний ключ отношения.
string getQualifiedForeignKeyName()
Получить полностью квалифицированный внешний ключ отношения.
string getOwnerKeyName()
Получить связанный ключ отношения.
string getQualifiedOwnerKeyName()
Получить полностью квалифицированный связанный ключ отношения.
string getRelationName()
Получить имя отношения.
protected void buildDictionary(Коллекция $models)
Сформировать словарь с моделями.
protected Коллекция getResultsByType(string $type)
Получить все результаты отношения для типа.
protected array gatherKeysByType(string $type, string $keyType)
Собрать все внешние ключи для заданного типа.
Модель createModelByType(string $type)
Создать новый экземпляр модели по типу.
protected void matchToMorphParents(string $type, Коллекция $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/8.x/Illuminate/Database/Eloquent/Relations/MorphTo.html