MorphOneOrMany
class MorphOneOrMany extends HasOneOrMany (View source)
Свойства
| protected Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static protected array | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| protected string | $foreignKey | Внешний ключ родительской модели. | из HasOneOrMany |
| protected string | $localKey | Локальный ключ родительской модели. | из HasOneOrMany |
| static protected int | $selfJoinCount | Количество самосоединений. | из HasOneOrMany |
| protected string | $morphType | Тип внешнего ключа для связи. | |
| protected string | $morphClass | Имя класса родительской модели. |
Методы
| void | __construct(Builder $query, Model $parent, string $type, string $id, string $localKey) Создать новый экземпляр отношения «один ко многим» или «многие ко многим». | |
| void | addConstraints() Установить базовые ограничения для запроса отношения. | |
| void | addEagerConstraints(array $models) Установить ограничения для жадного загрузки отношения. | |
| array | initRelation(array $models, string $relation) Инициализировать отношение для набора моделей. | из Relation |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные жадно результаты с родительскими объектами. | из Relation |
| mixed | getResults() Получить результаты отношения. | из Relation |
| Collection | getEager() Получить отношение для жадной загрузки. | из Relation |
| void | touch() Обновить метки времени для всех связанных моделей отношения. | из Relation |
| int | rawUpdate(array $attributes = []) Выполнить прямое обновление по основному запросу. | из Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для подсчета записей отношения. | из Relation |
| Builder | getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*']) Получить запрос для отношения. | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений для отношения. | из Relation |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery() Получить основной запрос для отношения. | из Relation |
| Builder | getBaseQuery() Получить базовый запрос, управляющий Eloquent запросом. | из Relation |
| Model | getParent() Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName() Получить полное имя родительского ключа. | из HasOneOrMany |
| Model | getRelated() Получить связанную модель отношения. | из Relation |
| string | createdAt() Получить имя колонки "created at". | из Relation |
| string | updatedAt() Получить имя колонки "updated at". | из Relation |
| string | relatedUpdatedAt() Получить имя колонки "updated at" связанной модели. | из Relation |
| string | wrap(string $value) Обернуть значение с использованием грамматики родительского запроса. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту морфизма для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создать массив таблично-ориентированных имен моделей. | из Relation |
| mixed | __call(string $method, array $parameters) Обработать вызовы динамических методов отношения. | из Relation |
| void | __clone() Принудительно создать копию базового конструктора запроса при клонировании. | из Relation |
| Builder | getRelationQueryForSelfRelation(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | из HasOneOrMany |
| string | getRelationCountHash() Получить хеш для таблицы связи отношения. | из HasOneOrMany |
| array | matchOne(array $models, Collection $results, string $relation) Сопоставить загруженные жадно результаты с одним родителем. | из HasOneOrMany |
| массив | matchMany(массив $models, Collection $results, строка $relation) Сопоставить загруженные с помощью eager loading результаты с их множественными родителями. | из HasOneOrMany |
| массив | matchOneOrMany(массив $models, Collection $results, строка $relation, строка $type) Сопоставить загруженные с помощью eager loading результаты с их множественными родителями. | из HasOneOrMany |
| смешанный тип | getRelationValue(массив $dictionary, строка $key, строка $type) Получить значение связи по типу один ко многим. | из HasOneOrMany |
| массив | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу связи. | из HasOneOrMany |
| Модель | save(Модель $model) Присоединить экземпляр модели к родительской модели. | |
| Traversable|массив | saveMany(Traversable|массив $models) Присоединить коллекцию моделей к родительскому экземпляру. | из HasOneOrMany |
| Collection|Модель | findOrNew(смешанный тип $id, массив $columns = ['*']) Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели. | |
| Модель | firstOrNew(массив $attributes) Получить первую связанную запись, соответствующую атрибутам, или создать её. | |
| Модель | firstOrCreate(массив $attributes) Получить первую связанную запись, соответствующую атрибутам, или создать её, если она не найдена. | |
| Модель | updateOrCreate(массив $attributes, массив $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| Модель | create(массив $attributes) Создать новый экземпляр связанной модели. | |
| массив | createMany(массив $records) Создать массив новых экземпляров связанной модели. | из HasOneOrMany |
| целое число | update(массив $attributes) Выполнить обновление всех связанных моделей. | из HasOneOrMany |
| строка | getHasCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | из HasOneOrMany |
| строка | getForeignKey() Получить внешний ключ для связи. | из HasOneOrMany |
| строка | getPlainForeignKey() Получить простой внешний ключ. | из HasOneOrMany |
| смешанный тип | getParentKey() Получить значение ключа родительского локального ключа. | из HasOneOrMany |
| пустое значение | setForeignAttributesForCreate(Модель $model) Установить внешний идентификатор и тип для создания связанной модели. | |
| строка | getMorphType() Получить имя внешнего ключа "тип". | |
| строка | getPlainMorphType() Получить простое имя типа морфинга без таблицы. | |
| строка | getMorphClass() Получить имя класса родительской модели. |
Подробности
пустое значение __construct(Builder $query, Модель $parent, строка $type, строка $id, строка $localKey)
Создать новый экземпляр связи "один ко многим" с морфингом.
пустое значение addConstraints()
Установить базовые ограничения для запроса отношения.
пустое значение addEagerConstraints(массив $models)
Установить ограничения для eager loading отношения.
абстрактный массив initRelation(массив $models, строка $relation)
Инициализировать отношение для набора моделей.
абстрактный массив match(массив $models, Collection $results, строка $relation)
Сопоставить загруженные с помощью eager loading результаты с родительскими моделями.
абстрактный смешанный тип getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для ленивой загрузки.
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление по базовому запросу.
Билдер getRelationCountQuery(Билдер $query, Билдер $parent)
Добавить ограничения для запроса подсчёта отношения.
Билдер getRelationQuery(Билдер $query, Билдер $parent, array|mixed $columns = ['*'])
Получить запрос для отношения.
static mixed noConstraints(Closure $callback)
Вызвать коллбек без ограничений для отношения.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Билдер getQuery()
Получить базовый запрос для отношения.
Билдер getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
string wrap(string $value)
Оборачивание заданного значения грамматикой родительского запроса.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить морф-мапу для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт массив, индексированный по таблицам, из имён классов моделей.
mixed __call(string $method, array $parameters)
Обработка вызовов динамических методов для отношения.
void __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
Билдер getRelationQueryForSelfRelation(Билдер $query, Билдер $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения к одной и той же таблице.
string getRelationCountHash()
Получить хэш таблицы связи.
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)
Создать словарь моделей, индексированный по внешнему ключу связи.
Traversable|array saveMany(Traversable|array $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Collection|Model findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Model firstOrNew(array $attributes)
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Model firstOrCreate(array $attributes)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Model create(array $attributes)
Создать новый экземпляр связанной модели.
array createMany(array $records)
Создать массив новых экземпляров связанной модели.
int update(array $attributes)
Выполнить обновление всех связанных моделей.
string getHasCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
string getForeignKey()
Получить внешний ключ для связи.
string getPlainForeignKey()
Получить простой внешний ключ.
mixed getParentKey()
Получить значение ключа родительского локального ключа.
protected void setForeignAttributesForCreate(Model $model)
Установить внешний идентификатор и тип для создания связанной модели.
string getMorphType()
Получить имя внешнего ключа "тип".
string getPlainMorphType()
Получить имя простого морф-типа без таблицы.
string getMorphClass()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.2/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.html