MorphOneOrMany
абстрактный класс MorphOneOrMany расширяет HasOneOrMany (View source)
Свойства
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр билдера Eloquent запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами морф в базе данных. | из Relation |
| защищенная строка | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| защищенная строка | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| статический защищенный int | $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)
Создать новый экземпляр связи morph one или many. | |
| 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 = [])
Выполнить сырое обновление по базовому запросу. | from Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта связи. | from Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Получить запрос связи. | |
| array | getKeys(array $models, string|null $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()
Получить имя столбца "created at". | from Relation |
| string | updatedAt()
Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | from Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для жадной загрузки. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Задать или получить карту морфинга для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Построить таблично-ключевой массив из имен классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | from Relation |
| void | __clone()
Принудительное клонирование базового объекта Query Builder при клонировании. | from Relation |
| Model | make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели. | from HasOneOrMany |
| Collection | makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей. | from HasOneOrMany |
| array | matchOne(array $models, Collection $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их единственными родителями. | from HasOneOrMany |
| array | matchMany(array $models, Collection $results, string $relation)
Сопоставить результаты, загруженные с помощью eager loading, с их множественными родителями. | from HasOneOrMany |
| array | matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить результаты, загруженные с помощью eager loading, с их множественными родителями. | from HasOneOrMany |
| mixed | getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по типу «один» или «многие». | from HasOneOrMany |
| array | buildDictionary(Collection $results)
Построить словарь моделей с ключами, соответствующими внешнему ключу отношения. | from HasOneOrMany |
| Collection|Model | findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели. | from HasOneOrMany |
| Model | firstOrNew(array $attributes, array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | from HasOneOrMany |
| Model | firstOrCreate(array $attributes, array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её. | from HasOneOrMany |
| Model | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | from HasOneOrMany |
| Model|false | save(Model $model)
Прикрепить экземпляр модели к родительской модели. | from HasOneOrMany |
| iterable | saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру. | from HasOneOrMany |
| Model | create(array $attributes = [])
Создать новый экземпляр связанной модели. | from HasOneOrMany |
| Collection | createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели. | from HasOneOrMany |
| void | setForeignAttributesForCreate(Model $model)
Установить внешний ID и тип для создания связанной модели. | |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения к той же таблице. | from HasOneOrMany |
| string | getRelationCountHash()
Получить хэш таблицы соединения отношений. | from HasOneOrMany |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has". | from HasOneOrMany |
| mixed | getParentKey()
Получить значение ключа локального ключа родителя. | from HasOneOrMany |
| string | getForeignKeyName()
Получить простой внешний ключ. | from HasOneOrMany |
| string | getQualifiedForeignKeyName()
Получить внешний ключ для отношения. | from HasOneOrMany |
| string | getLocalKeyName()
Получить локальный ключ для связи. | from HasOneOrMany |
| string | getQualifiedMorphType()
Получить имя внешнего ключа "тип". | |
| string | getMorphType()
Получить простое имя типа морфирования без таблицы. | |
| string | getMorphClass()
Получить имя класса родительской модели. |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $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 $type, string $id, string $localKey)
Создать новый экземпляр связи "один или многие" с морфированием.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями для отношения.
void addConstraints()
Установить базовые ограничения на запрос к отношению.
void addEagerConstraints(array $models)
Установить ограничения для жадного загрузки отношения.
abstract array initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
abstract array match(array $models, Collection $results, string $relation)
Сопоставить загруженные жадно результаты с их родителями.
abstract mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для жадной загрузки.
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 = ['*'])
Получить запрос отношения.
protected array getKeys(array $models, string|null $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()
Принудительно клонировать базовый билдер запросов при клонировании.
Model make(array $attributes = [])
Создать и вернуть несохранённый экземпляр связанной модели.
Collection makeMany(iterable $records)
Создать и вернуть несохранённые экземпляры связанных моделей.
array matchOne(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их единственными родителями.
array matchMany(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их множественными родителями.
protected array matchOneOrMany(array $models, Collection $results, string $relation, string $type)
Сопоставить загруженные результаты с их множественными родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение связи по одному или множественному типу.
protected array buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу связи.
Collection|Model findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Model firstOrNew(array $attributes, array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Model firstOrCreate(array $attributes, array $values = [])
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
iterable saveMany(iterable $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Model create(array $attributes = [])
Создать новый экземпляр связанной модели.
Collection createMany(iterable $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Model $model)
Установить внешний идентификатор и тип для создания связанной модели.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
string getRelationCountHash()
Получить хеш таблицы соединения связи.
string getExistenceCompareKey()
Получить ключ для сравнения с ключом родителя в запросе "has".
mixed 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/7.x/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html