MorphToMany
class MorphToMany extends BelongsToMany (View source)
Свойства
| InteractsWithPivotTable |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | from Macroable |
| protected Builder | $query | Экземпляр билдера Eloquent запроса. | from Relation |
| protected Model | $parent | Экземпляр родительской модели. | from Relation |
| protected Model | $related | Экземпляр связанной модели. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | from Relation |
| static protected array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | from Relation |
| protected string | $table | Промежуточная таблица для отношения. | from BelongsToMany |
| protected string | $foreignKey | Внешний ключ родительской модели. | from BelongsToMany |
| protected string | $relatedKey | Связанный ключ отношения. | from BelongsToMany |
| protected string | $relationName | Имя отношения. | from BelongsToMany |
| protected array | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | from BelongsToMany |
| protected array | $pivotWheres | Любые ограничения промежуточной таблицы для операторов where. | from BelongsToMany |
| protected array | $pivotWhereIns | Любые ограничения промежуточной таблицы для операторов whereIn. | from BelongsToMany |
| protected string | $pivotCreatedAt | Настраиваемый столбец промежуточной таблицы для отметки времени created_at. | from BelongsToMany |
| protected string | $pivotUpdatedAt | Настраиваемый столбец промежуточной таблицы для отметки времени updated_at. | from BelongsToMany |
| protected string | $using | Имя класса пользовательской модели pivot для использования в отношении. | from BelongsToMany |
| static protected int | $selfJoinCount | Количество самосоединений. | from BelongsToMany |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected string | $morphClass | Имя класса ограничения типа морфизма. | |
| protected bool | $inverse | Указывает, подключаем ли мы обратную сторону отношения. |
Методы
| static void | macro(string $name, callable $macro) Зарегистрировать пользовательское макро. | 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 $name, string $table, string $foreignKey, string $relatedKey, string $relationName = null, bool $inverse = false) Создать новый экземпляр связи "многие ко многим" с морфизмом. | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов с отключенными ограничениями для связи. | from Relation |
| void | addConstraints() Установить основные ограничения для запроса связи. | from BelongsToMany |
| void | addEagerConstraints(array $models) Установить ограничения для жадной загрузки связи. | |
| array | initRelation(array $models, string $relation) Инициализировать связь для набора моделей. | from BelongsToMany |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные с жадной загрузкой результаты с их родительскими элементами. | from BelongsToMany |
| mixed | getResults() Получить результаты связи. | from BelongsToMany |
| Collection | getEager() Получить связь для жадной загрузки. | from Relation |
| void | touch() Обновить метки времени всех связанных моделей для связи. | from BelongsToMany |
| 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 $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий билдером Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName() Получить полное квалифицированное имя родительского ключа. | from Relation |
| Model | getRelated() Получить связанную модель связи. | from Relation |
| string | createdAt() Получить имя столбца "created at". | from BelongsToMany |
| string | updatedAt() Получить имя столбца "updated at". | from BelongsToMany |
| string | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | 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() Принудительно клонирует базовый билдер запроса при клонировании. | from Relation |
| array | toggle(mixed $ids, bool $touch = true) Переключает модель (или модели) из родителя. | from InteractsWithPivotTable |
| array | syncWithoutDetaching(Collection|array $ids) Синхронизирует промежуточные таблицы со списком идентификаторов без открепления. | from InteractsWithPivotTable |
| array | sync(Collection|Collection|array $ids, bool $detaching = true) Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей. | from InteractsWithPivotTable |
| array | formatRecordsList(array $records) Форматирует список записей синхронизации/переключения, чтобы он индексировался по идентификатору. | from InteractsWithPivotTable |
| array | attachNew(array $records, array $current, bool $touch = true) Присоединяет все записи, которых нет в заданных текущих записях. | from InteractsWithPivotTable |
| int | updateExistingPivot(mixed $id, array $attributes, bool $touch = true) Обновляет существующую запись шва в таблице. | from InteractsWithPivotTable |
| void | attach(mixed $id, array $attributes = [], bool $touch = true) Присоединяет модель к родителю. | from InteractsWithPivotTable |
| array | formatAttachRecords(array $ids, array $attributes) Создает массив записей для вставки в таблицу швов. | from InteractsWithPivotTable |
| array | formatAttachRecord(int $key, mixed $value, array $attributes, bool $hasTimestamps) Создаёт полный пакет данных для присоединения. | from InteractsWithPivotTable |
| array | extractAttachIdAndAttributes(mixed $key, mixed $value, array $attributes) Получить идентификатор записи присоединения и дополнительные атрибуты. | from InteractsWithPivotTable |
| array | baseAttachRecord(int $id, bool $timed) Создать новую запись присоединения шва. | |
| array | addTimestampsToAttachment(array $record, bool $exists = false) Установить метки создания и обновления для записи присоединения. | from InteractsWithPivotTable |
| bool | hasPivotColumn(string $column) Определить, задан ли данный столбец как столбец шва. | from InteractsWithPivotTable |
| int | detach(mixed $ids = null, bool $touch = true) Открепить модели от отношения. | from InteractsWithPivotTable |
| Pivot | newPivot(array $attributes = [], bool $exists = false) Создать новый экземпляр модели шва. | |
| Pivot | newExistingPivot(array $attributes = []) Создать новый существующий экземпляр модели шва. | from InteractsWithPivotTable |
| Builder | newPivotStatement() Получить новый простой билдер запроса для таблицы швов. | from InteractsWithPivotTable |
| Builder | newPivotStatementForId(mixed $id) Получить новый запрос для шва по заданному идентификатору. | from InteractsWithPivotTable |
| Builder | newPivotQuery() Создать новый билдер запросов для таблицы швов. | |
| $this | withPivot(array|mixed $columns) Установить столбцы в таблице швов для получения. | from InteractsWithPivotTable |
| array | parseIds(mixed $value) Получить все идентификаторы из данного смешанного значения. | from InteractsWithPivotTable |
| array | castKeys(array $keys) Преобразовать заданные ключи в целые числа, если они являются числовыми, и в строки в противном случае. | from InteractsWithPivotTable |
| mixed | castKey(mixed $key) Преобразовать данный ключ в целое число, если он является числовым. | from InteractsWithPivotTable |
| $this | performJoin(Builder|null $query = null) Установить условие объединения для запроса отношения. | from BelongsToMany |
| $this | addWhereConstraints() Установить условие where для запроса отношения. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | from BelongsToMany |
| BelongsToMany | using(string $class) Укажите пользовательскую модель связей для использования в отношении. | from BelongsToMany |
| BelongsToMany | wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Установите условие where для столбца таблицы связей. | from BelongsToMany |
| BelongsToMany | wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false) Установите условие "where in" для столбца таблицы связей. | from BelongsToMany |
| BelongsToMany | orWherePivot(string $column, string $operator = null, mixed $value = null) Установите условие "or where" для столбца таблицы связей. | from BelongsToMany |
| BelongsToMany | orWherePivotIn(string $column, mixed $values) Установите условие "or where in" для столбца таблицы связей. | from BelongsToMany |
| Collection|Model | findOrNew(mixed $id, array $columns = ['*']) Найдите связанную модель по её первичному ключу или верните новую инстанцию связанной модели. | from BelongsToMany |
| Model | firstOrNew(array $attributes) Получите первую связанную запись модели, соответствующую атрибутам, или создайте её. | from BelongsToMany |
| Model | firstOrCreate(array $attributes, array $joining = [], bool $touch = true) Получите первую связанную запись, соответствующую атрибутам, или создайте её. | from BelongsToMany |
| Model | updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true) Создайте или обновите связанную запись, соответствующую атрибутам, и заполните её значениями. | from BelongsToMany |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найдите связанную модель по её первичному ключу. | from BelongsToMany |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найдите несколько связанных моделей по их первичным ключам. | from BelongsToMany |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найдите связанную модель по её первичному ключу или выбросьте исключение. | from BelongsToMany |
| mixed | first(array $columns = ['*']) Выполните запрос и получите первый результат. | from BelongsToMany |
| Model|BelongsToMany | firstOrFail(array $columns = ['*']) Выполните запрос и получите первый результат или выбросьте исключение. | from BelongsToMany |
| Collection | get(array $columns = ['*']) Выполните запрос в качестве оператора "select". | from BelongsToMany |
| BelongsToMany | shouldSelect(array $columns = ['*']) Получить столбцы select для запроса отношения. | from BelongsToMany |
| array | aliasedPivotColumns() Получить столбцы связей для отношения. | from BelongsToMany |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Получить пагинатор для оператора "select". | from BelongsToMany |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Пагинировать заданный запрос с помощью простого пагинатора. | from BelongsToMany |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на чанки. | from BelongsToMany |
| void | hydratePivotRelation(array $models) Заполнить отношение таблицы связей в моделях. | from BelongsToMany |
| array | migratePivotAttributes(Model $model) Получить атрибуты связей из модели. | from BelongsToMany |
| void | touchIfTouching() Если нужно обновить родительскую модель, обновить её. | from BelongsToMany |
| bool | touchingParent() Определить, нужно ли обновлять родительскую модель при синхронизации. | from BelongsToMany |
| string | guessInverseRelation() Попытка определить имя обратного отношения. | из BelongsToMany |
| Collection | allRelatedIds() Получить все ID связанных моделей. | из BelongsToMany |
| Model | save(Model $model, array $pivotAttributes = [], bool $touch = true) Сохранить новую модель и прикрепить её к родительской модели. | из BelongsToMany |
| array | saveMany(Collection|array $models, array $pivotAttributes = []) Сохранить массив новых моделей и прикрепить их к родительской модели. | из BelongsToMany |
| Model | create(array $attributes, array $joining = [], bool $touch = true) Создать новый экземпляр связанной модели. | из BelongsToMany |
| array | createMany(array $records, array $joinings = []) Создать массив новых экземпляров связанных моделей. | из BelongsToMany |
| Builder | getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | из BelongsToMany |
| string | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе «has». | из BelongsToMany |
| string | getRelationCountHash() Получить хэш таблицы соединения отношений. | из BelongsToMany |
| BelongsToMany | withTimestamps(mixed $createdAt = null, mixed $updatedAt = null) Указать, что таблица связи имеет метки создания и обновления. | из BelongsToMany |
| string | getQualifiedForeignKeyName() Получить полное имя внешнего ключа для отношения. | из BelongsToMany |
| string | getQualifiedRelatedKeyName() Получить полное имя «связанного ключа» для отношения. | из BelongsToMany |
| string | getTable() Получить промежуточную таблицу для отношения. | из BelongsToMany |
| string | getRelationName() Получить имя отношения для связи. | из BelongsToMany |
| string | getMorphType() Получить имя внешнего ключа «тип». | |
| string | getMorphClass() Получить имя класса родительской модели. |
Подробности
static void macro(string $name, callable $macro)
Зарегистрировать пользовательское макро.
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 $name, string $table, string $foreignKey, string $relatedKey, string $relationName = null, bool $inverse = false)
Создать новый экземпляр отношения «многие ко многим».
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()
Получить отношение для жадной загрузки.
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()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели.
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()
Принудительно клонировать базовый билдер запроса при клонировании.
array toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) из родительской.
Каждая существующая модель отделяется, а несуществующие присоединяются.
array syncWithoutDetaching(Collection|array $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без отсоединения.
array sync(Collection|Collection|array $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей.
protected array formatRecordsList(array $records)
Форматирует список записей синхронизации/переключения, чтобы он был индексирован по идентификатору.
protected array attachNew(array $records, array $current, bool $touch = true)
Присоединяет все записи, которые не находятся в заданных текущих записях.
int updateExistingPivot(mixed $id, array $attributes, bool $touch = true)
Обновляет существующую запись pivot в таблице.
void attach(mixed $id, array $attributes = [], bool $touch = true)
Присоединяет модель к родительской.
protected array formatAttachRecords(array $ids, array $attributes)
Создаёт массив записей для вставки в таблицу pivot.
protected array formatAttachRecord(int $key, mixed $value, array $attributes, bool $hasTimestamps)
Создаёт полную полезную нагрузку записи присоединения.
protected array extractAttachIdAndAttributes(mixed $key, mixed $value, array $attributes)
Получает идентификатор записи присоединения и дополнительные атрибуты.
protected array baseAttachRecord(int $id, bool $timed)
Создаёт новую запись присоединения pivot.
protected array addTimestampsToAttachment(array $record, bool $exists = false)
Устанавливает метки создания и обновления в записи присоединения.
protected bool hasPivotColumn(string $column)
Определяет, является ли указанный столбец столбцом pivot.
int detach(mixed $ids = null, bool $touch = true)
Отсоединяет модели от отношения.
Pivot newPivot(array $attributes = [], bool $exists = false)
Создаёт новый экземпляр модели pivot.
Pivot newExistingPivot(array $attributes = [])
Создаёт новый существующий экземпляр модели pivot.
Builder newPivotStatement()
Получает новый обычный билдер запроса для таблицы pivot.
Builder newPivotStatementForId(mixed $id)
Получить новое выражение для связи по заданному идентификатору.
protected Builder newPivotQuery()
Создать новый конструктор запроса для таблицы связи.
$this withPivot(array|mixed $columns)
Установить столбцы для получения из таблицы связи.
protected array parseIds(mixed $value)
Получить все идентификаторы из заданного значения.
protected array castKeys(array $keys)
Преобразовать заданные ключи к целочисленному типу, если они числовые, или к строковому в противном случае.
protected mixed castKey(mixed $key)
Преобразовать заданный ключ к целочисленному типу, если он числовой.
protected $this performJoin(Builder|null $query = null)
Установить условие объединения для запроса отношения.
protected $this addWhereConstraints()
Установить условие where для запроса отношения.
protected array buildDictionary(Collection $results)
Построить словарь моделей, индексированный по внешнему ключу отношения.
BelongsToMany using(string $class)
Указать пользовательскую модель для таблицы связи.
BelongsToMany wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца таблицы связи.
BelongsToMany wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «where in» для столбца таблицы связи.
BelongsToMany orWherePivot(string $column, string $operator = null, mixed $value = null)
Установить условие «or where» для столбца таблицы связи.
BelongsToMany orWherePivotIn(string $column, mixed $values)
Установить условие «or where in» для столбца таблицы связи.
Collection|Model findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новую модель.
Model firstOrNew(array $attributes)
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр.
Model firstOrCreate(array $attributes, array $joining = [], bool $touch = true)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Коллекция get(array $columns = ['*'])
Выполнить запрос как операцию «выбор».
protected BelongsToMany shouldSelect(array $columns = ['*'])
Получить столбцы выбора для запроса связи.
protected array aliasedPivotColumns()
Получить столбцы моста для связи.
«pivot_» добавляется как префикс к каждому столбцу для лёгкого удаления позже.
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Получить разбиение на страницы для оператора «выбор».
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить на страницы предоставленный запрос с помощью простого разбиения на страницы.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на части.
protected void hydratePivotRelation(array $models)
Заполнить отношение таблицы моста в моделях.
protected array migratePivotAttributes(Модель $model)
Получить атрибуты моста из модели.
void touchIfTouching()
Если нужно обновить родительскую модель, обновить её.
protected bool touchingParent()
Определить, нужно ли обновлять родительскую модель при синхронизации.
protected string guessInverseRelation()
Попытаться угадать имя обратного отношения.
Коллекция allRelatedIds()
Получить все идентификаторы связанных моделей.
Модель save(Модель $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и прикрепить её к родительской модели.
массив saveMany(Коллекция|массив $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели.
Модель create(array $attributes, array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели.
массив createMany(array $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей.
Билдер getRelationExistenceQueryForSelfJoin(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношений на том же столе.
строка getExistenceCompareKey()
Получить ключ для сравнения с ключом родителя в запросе "has".
строка getRelationCountHash()
Получить хэш таблицы объединения отношений.
Связь_многие_ко_многим withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что таблица связей имеет метки создания и обновления.
строка getQualifiedForeignKeyName()
Получить полное имя внешнего ключа для отношения.
строка getQualifiedRelatedKeyName()
Получить полное имя "связанного ключа" для отношения.
строка getTable()
Получить промежуточную таблицу для отношения.
строка getRelationName()
Получить имя отношения для отношения.
строка getMorphType()
Получить имя внешнего ключа "тип".
строка getMorphClass()
Получить имя класса родительской модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Relations/MorphToMany.html