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