MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Свойства
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый булево | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| защищённая строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищённая строка | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| статический защищённый целое число | $selfJoinCount | Количество самосоединений. | из HasOneOrMany |
| защищённая строка | $morphType | Тип внешнего ключа для отношения. | |
| защищённая строка | $morphClass | Имя класса родительской модели. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters) Передать вызов метода заданному объекту. | 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 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) Установить ограничения для ленивой загрузки связи. | |
| array | initRelation(array $models, string $relation) Инициализировать связь на наборе моделей. | from Relation |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные лениво результаты с их родителями. | from Relation |
| mixed | getResults() Получить результаты связи. | from Relation |
| Collection | getEager() Получить связь для ленивой загрузки. | from Relation |
| Collection | get(array $columns = ['*']) Выполнить запрос в качестве оператора «select». | from Relation |
| void | touch() Обновить все связанные модели для связи. | from Relation |
| int | rawUpdate(array $attributes = []) Выполнить обновление в виде SQL запроса для основного запроса. | from Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery) Добавить ограничения для запроса подсчета существования связи. | from Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Получить запрос для связи. | |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый создатель запроса, управляющий создателем запроса Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName() Получить полное имя родительского ключа. | from HasOneOrMany |
| Model | getRelated() Получить связанную модель связи. | from Relation |
| string | createdAt() Получить имя столбца «создано в». | from Relation |
| string | updatedAt() Получить имя столбца «обновлено в». | from Relation |
| string | relatedUpdatedAt() Получить имя столбца «обновлено в» связанной модели. | from Relation |
| строка | whereInMethod(Модель $model, строка $key) Получить имя метода «where in» для ленивой загрузки. | из Связь |
| статический массив | morphMap(массив $map = null, bool $merge = true) Установить или получить морф-отображение для полиморфных отношений. | из Связь |
| статический массив|null | buildMorphMapFromModels(массив $models = null) Создаёт таблично-индексированный массив из имён классов моделей. | из Связь |
| статическая строка|null | getMorphedModel(строка $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Связь |
| void | __clone() Вынудить клонирование базового генератора запросов при клонировании. | из Связь |
| Модель | make(массив $attributes = []) Создать и вернуть несохранённый экземпляр связанной модели. | из ОдинКОдномуИлиНескольким |
| массив | matchOne(массив $models, Коллекция $results, строка $relation) Сопоставить загруженные с помощью ленивой загрузки результаты с их единственными родителями. | из ОдинКОдномуИлиНескольким |
| массив | matchMany(массив $models, Коллекция $results, строка $relation) Сопоставить загруженные с помощью ленивой загрузки результаты со своими многими родителями. | из ОдинКОдномуИлиНескольким |
| массив | matchOneOrMany(массив $models, Коллекция $results, строка $relation, строка $type) Сопоставить загруженные с помощью ленивой загрузки результаты со своими многими родителями. | из ОдинКОдномуИлиНескольким |
| смешанный тип | getRelationValue(массив $dictionary, строка $key, строка $type) Получить значение отношения по типу один или много. | из ОдинКОдномуИлиНескольким |
| массив | buildDictionary(Коллекция $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | из ОдинКОдномуИлиНескольким |
| Коллекция|Модель | findOrNew(смешанный тип $id, массив $columns = ['*']) Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | из ОдинКОдномуИлиНескольким |
| Модель | firstOrNew(массив $attributes, массив $values = []) Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | из ОдинКОдномуИлиНескольким |
| Модель | firstOrCreate(массив $attributes, массив $values = []) Получить первую связанную запись, соответствующую атрибутам, или создать её. | из ОдинКОдномуИлиНескольким |
| Модель | updateOrCreate(массив $attributes, массив $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из ОдинКОдномуИлиНескольким |
| Модель|false | save(Модель $model) Присоединить экземпляр модели к родительской модели. | из ОдинКОдномуИлиНескольким |
| iterable | saveMany(iterable $models) Присоединить коллекцию моделей к экземпляру родительского элемента. | из ОдинКОдномуИлиНескольким |
| Модель | create(массив $attributes = []) Создать новый экземпляр связанной модели. | из ОдинКОдномуИлиНескольким |
| Коллекция | createMany(массив $records) Создать коллекцию новых экземпляров связанной модели. | из ОдинКОдномуИлиНескольким |
| void | setForeignAttributesForCreate(Модель $model) Установить внешний идентификатор и тип для создания связанной модели. | |
| Генератор | getRelationExistenceQueryForSelfRelation(Генератор $query, Генератор $parentQuery, массив|смешанный тип $columns = ['*']) Добавить ограничения для запроса отношения в той же таблице. | из ОдинКОдномуИлиНескольким |
| строка | getRelationCountHash() Получить хеш таблицы объединения отношения. | из ОдинКОдномуИлиНескольким |
| строка | getExistenceCompareKey() Получить ключ для сравнения с ключом родителя в запросе «has». | из ОдинКОдномуИлиНескольким |
| смешанный тип | getParentKey() Получить значение ключа родительского локального ключа. | из ОдинКОдномуИлиНескольким |
| строка | getForeignKeyName() Получить простой внешний ключ. | из ОдинКОдномуИлиНескольким |
| строка | getQualifiedForeignKeyName() Получить внешний ключ для отношения. | из ОдинКОдномуИлиНескольким |
| строка | getLocalKeyName() Получить локальный ключ для отношения. | из HasOneOrMany |
| строка | getQualifiedMorphType() Получить имя внешнего ключа "тип". | |
| строка | getMorphType() Получить простое имя типа морфинга без таблицы. | |
| строка | getMorphClass() Получить имя класса родительской модели. |
Подробности
protected смешанный forwardCallTo(смешанный $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
static protected void throwBadMethodCallException(строка $method)
Выбросить исключение для неверного вызова метода.
static void macro(строка $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(строка $name)
Проверяет, зарегистрировано ли макро.
static смешанный __callStatic(строка $method, массив $parameters)
Динамически обработать вызовы класса.
смешанный __call(строка $method, массив $parameters)
Динамически обработать вызовы класса.
void __construct(Builder $query, Model $parent, строка $type, строка $id, строка $localKey)
Создать новый экземпляр отношения "морф один или много".
static смешанный noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(массив $models)
Установить ограничения для жадного загрузки отношения.
abstract массив initRelation(массив $models, строка $relation)
Инициализировать отношение для набора моделей.
abstract массив match(массив $models, Collection $results, строка $relation)
Сопоставить загруженные результаты с их родителями.
abstract смешанный getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для жадной загрузки.
Collection get(массив $columns = ['*'])
Выполнить запрос как операцию "выбрать".
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)
Установить или получить морф-справочник для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт таблично-индексированный массив из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
Model make(array $attributes = [])
Создать и вернуть незасохранённую экземпляр связанной модели.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их единственными родителями.
массив matchMany(массив $models, Collection $results, строка $relation)
Сопоставить загруженные с жадностью результаты со своими родителями во множественном числе.
protected массив matchOneOrMany(массив $models, Collection $results, строка $relation, строка $type)
Сопоставить загруженные с жадностью результаты со своими родителями во множественном числе.
protected смешанный getRelationValue(массив $dictionary, строка $key, строка $type)
Получить значение отношения по типу один или многие.
protected массив buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
Collection|Модель findOrNew(смешанный $id, массив $columns = ['*'])
Найти модель по первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(массив $attributes, массив $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать ее.
Модель firstOrCreate(массив $attributes, массив $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать ее.
Модель updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.
итерируемый saveMany(итерируемый $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Модель create(массив $attributes = [])
Создать новый экземпляр связанной модели.
Collection createMany(массив $records)
Создать коллекцию новых экземпляров связанной модели.
protected пусто setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор и тип для создания связанной модели.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, массив|смешанный $columns = ['*'])
Добавить ограничения для запроса отношений на одной и той же таблице.
строка getRelationCountHash()
Получить хеш таблицы объединения отношений.
строка getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
смешанный 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/5.8/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html