MorphToMany
class MorphToMany extends BelongsToMany (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 | $table | Промежуточная таблица для отношения. | из BelongsToMany |
| protected string | $foreignKey | Внешний ключ родительской модели. | из BelongsToMany |
| protected string | $otherKey | Связанный ключ отношения. | из BelongsToMany |
| protected string | $relationName | Имя отношения. | из BelongsToMany |
| protected array | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | из BelongsToMany |
| protected array | $pivotWheres | Любые ограничения для промежуточной таблицы в условиях where. | из BelongsToMany |
| protected array | $pivotWhereIns | Любые ограничения для промежуточной таблицы в условиях whereIn. | из BelongsToMany |
| protected string | $pivotCreatedAt | Пользовательский столбец промежуточной таблицы для отметки времени создания. | из BelongsToMany |
| protected string | $pivotUpdatedAt | Пользовательский столбец промежуточной таблицы для отметки времени обновления. | из BelongsToMany |
| static protected int | $selfJoinCount | Количество самосоединений. | из BelongsToMany |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected string | $morphClass | Имя класса ограничения полиморфного типа. | |
| protected bool | $inverse | Указывает, подключаем ли мы обратное отношение. |
Методы
| void | __construct(Builder $query, Model $parent, string $name, string $table, string $foreignKey, string $otherKey, string $relationName = null, bool $inverse = false) Создать новый экземпляр отношения many-to-many. | |
| void | addConstraints() Установить базовые ограничения запроса отношения. | из BelongsToMany |
| void | addEagerConstraints(array $models) Установить ограничения для жадного загрузки отношения. | |
| array | initRelation(array $models, string $relation) Инициализировать отношение для набора моделей. | из BelongsToMany |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные с жадным запросом результаты с их родительскими моделями. | из BelongsToMany |
| mixed | getResults() Получить результаты отношения. | из BelongsToMany |
| Collection | getEager() Получить отношение для жадной загрузки. | из Relation |
| void | touch() Обновить метки времени для всех связанных моделей отношения. | из BelongsToMany |
| 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() Получить полностью квалифицированное имя родительского ключа. | из Relation |
| Model | getRelated() Получить связанную модель отношения. | из Relation |
| string | createdAt() Получить имя колонки "created_at". | из BelongsToMany |
| string | updatedAt() Получить имя колонки "updated_at". | из BelongsToMany |
| string | relatedUpdatedAt() Получить имя колонки "updated_at" связанной модели. | из Relation |
| string | wrap(string $value) Оборачивает переданное значение с использованием грамматики родительского запроса. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту morph для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает массив с ключами таблиц и именами классов моделей. | из Relation |
| mixed | __call(string $method, array $parameters) Обработка вызовов динамических методов отношения. | из Relation |
| void | __clone() Принудительное клонирование основного билдера запросов при клонировании. | из Relation |
| BelongsToMany | wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Установить условие where для столбца таблицы связей. | из BelongsToMany |
| BelongsToMany | wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false) Установить условие "where in" для столбца таблицы связей. | из BelongsToMany |
| BelongsToMany | orWherePivot(string $column, string $operator = null, mixed $value = null) Установить условие "или где" для столбца таблицы связей. | из BelongsToMany |
| BelongsToMany | orWherePivotIn(string $column, mixed $values) Установить условие "или где в" для столбца таблицы связей. | из BelongsToMany |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первый результат. | из BelongsToMany |
| Model|BelongsToMany | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | из BelongsToMany |
| Collection | get(array $columns = ['*']) Выполнить запрос как оператор "select". | из BelongsToMany |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Получить пагинатор для оператора "select". | из BelongsToMany |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page') Разбить результаты заданного запроса на простую страницу. | из BelongsToMany |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на куски. | из BelongsToMany |
| void | hydratePivotRelation(array $models) Загрузить отношение таблицы связей для моделей. | из BelongsToMany |
| array | cleanPivotAttributes(Model $model) Получить атрибуты связей из модели. | из BelongsToMany |
| Builder | getRelationQueryForSelfJoin(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | из BelongsToMany |
| string | getRelationCountHash() Получить хеш таблицы связей отношения. | из BelongsToMany |
| BelongsToMany | getSelectColumns(array $columns = ['*']) Установить оператор select для запроса отношения. | из BelongsToMany |
| array | getAliasedPivotColumns() Получить столбцы связей для отношения. | из BelongsToMany |
| bool | hasPivotColumn(string $column) Определить, определен ли данный столбец как столбец связей. | из BelongsToMany |
| $this | setJoin(Builder|null $query = null) Установить оператор join для запроса отношения. | из BelongsToMany |
| $this | setWhere() Установить оператор where для запроса отношения. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | из BelongsToMany |
| Collection | getRelatedIds() Получить все идентификаторы для связанных моделей. | из BelongsToMany |
| Model | save(Model $model, array $joining = [], bool $touch = true) Сохранить новую модель и привязать её к родительской модели. | из BelongsToMany |
| array | saveMany(Collection|array $models, array $joinings = []) Сохранить массив новых моделей и привязать их к родительской модели. | из BelongsToMany |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу. | из BelongsToMany |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | из BelongsToMany |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | из BelongsToMany |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели. | из BelongsToMany |
| Модель | firstOrNew(array $attributes) Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | из BelongsToMany |
| Модель | firstOrCreate(array $attributes, array $joining = [], bool $touch = true) Получить первую связанную запись, соответствующую атрибутам, или создать её. | из BelongsToMany |
| Модель | updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из BelongsToMany |
| Модель | create(array $attributes, array $joining = [], bool $touch = true) Создать новый экземпляр связанной модели. | из BelongsToMany |
| массив | createMany(array $records, array $joinings = []) Создать массив новых экземпляров связанных моделей. | из BelongsToMany |
| массив | syncWithoutDetaching(Коллекция|array $ids) Синхронизировать промежуточные таблицы со списком идентификаторов без отсоединения. | из BelongsToMany |
| массив | sync(Коллекция|array $ids, bool $detaching = true) Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей. | из BelongsToMany |
| массив | formatSyncList(array $records) Отформатировать список синхронизации так, чтобы он был индексирован по идентификатору. | из BelongsToMany |
| массив | attachNew(array $records, array $current, bool $touch = true) Прикрепить все идентификаторы, которых нет в текущем массиве. | из BelongsToMany |
| целое число | updateExistingPivot(mixed $id, array $attributes, bool $touch = true) Обновить существующую запись мостика в таблице. | из BelongsToMany |
| void | attach(mixed $id, array $attributes = [], bool $touch = true) Прикрепить модель к родителю. | из BelongsToMany |
| массив | createAttachRecords(array $ids, array $attributes) Создать массив записей для вставки в таблицу мостика. | из BelongsToMany |
| массив | attacher(int $key, mixed $value, array $attributes, bool $timed) Создать полную нагрузку записи прикрепления. | из BelongsToMany |
| массив | getAttachId(mixed $key, mixed $value, array $attributes) Получить идентификатор записи прикрепления и дополнительные атрибуты. | из BelongsToMany |
| массив | createAttachRecord(int $id, bool $timed) Создать новую запись прикрепления мостика. | |
| массив | setTimestampsOnAttach(array $record, bool $exists = false) Установить метки создания и обновления для записи прикрепления. | из BelongsToMany |
| целое число | detach(mixed $ids = [], bool $touch = true) Отсоединить модели от связи. | из BelongsToMany |
| void | touchIfTouching() Если мы касаемся родительской модели, выполнить касание. | из BelongsToMany |
| bool | touchingParent() Определить, нужно ли выполнять касание родительской модели при синхронизации. | из BelongsToMany |
| строка | guessInverseRelation() Попытаться определить имя обратной связи. | из BelongsToMany |
| Построитель | newPivotQuery() Создать новый объект-построитель запроса для таблицы мостика. | |
| Построитель | newPivotStatement() Получить новый простой объект-построитель запроса для таблицы мостика. | из BelongsToMany |
| Построитель | newPivotStatementForId(mixed $id) Получить новое выражение мостика для заданного идентификатора "другой" модели. | из BelongsToMany |
| Мостик | newPivot(array $attributes = [], bool $exists = false) Создать новый экземпляр модели мостика. | |
| Мостик | newExistingPivot(array $attributes = []) Создать новый экземпляр существующей модели мостика. | из BelongsToMany |
| $this | withPivot(array|mixed $columns) Установить столбцы для таблицы мостика, которые необходимо получить. | из BelongsToMany |
| BelongsToMany | withTimestamps(mixed $createdAt = null, mixed $updatedAt = null) Указать, что сводная таблица имеет метки времени создания и обновления. | from BelongsToMany |
| строка | getRelatedFreshUpdate() Получить имя столбца updated_at связанной модели. | from BelongsToMany |
| строка | getHasCompareKey() Получить ключ для сравнения со значением родительского ключа в запросе «has». | from BelongsToMany |
| строка | getForeignKey() Получить полное квалифицированное имя внешнего ключа для связи. | from BelongsToMany |
| строка | getOtherKey() Получить полное квалифицированное имя «другого ключа» для связи. | from BelongsToMany |
| строка | getTable() Получить промежуточную таблицу для связи. | from BelongsToMany |
| строка | getRelationName() Получить имя связи для связи. | from BelongsToMany |
| строка | getMorphType() Получить имя внешнего ключа «тип». | |
| строка | getMorphClass() Получить имя класса родительской модели. |
Подробности
void __construct(Builder $query, Model $parent, string $name, string $table, string $foreignKey, string $otherKey, string $relationName = null, bool $inverse = false)
Создать новый экземпляр связи «многие ко многим».
void addConstraints()
Установить базовые ограничения в запросе связи.
void addEagerConstraints(array $models)
Установить ограничения для жадного загрузки связи.
массив initRelation(array $models, string $relation)
Инициализировать связь для набора моделей.
массив match(array $models, Collection $results, string $relation)
Сопоставить загруженные жадно результаты с их родителями.
смешанный getResults()
Получить результаты связи.
Collection getEager()
Получить связь для жадной загрузки.
void touch()
Обновить метки времени для всех связанных моделей в рамках связи.
Например: Обновить метку времени для всех ролей, связанных с этим пользователем.
целое rawUpdate(array $attributes = [])
Выполнить сырое обновление базового запроса.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчёта связи.
Builder getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса подсчёта связи.
static смешанный noConstraints(Closure $callback)
Вызвать обратный вызов с отключенными ограничениями для связи.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовое запрошенное значение для отношения.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели.
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()
Принудительно клонировать базовый конструктор запроса при клонировании.
BelongsToMany wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца таблицы pivot.
BelongsToMany wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «where in» для столбца таблицы pivot.
BelongsToMany orWherePivot(string $column, string $operator = null, mixed $value = null)
Установить условие «or where» для столбца таблицы pivot.
BelongsToMany orWherePivotIn(string $column, mixed $values)
Установить условие «or where in» для столбца таблицы pivot.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Коллекция get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select».
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Получить пагинатор для оператора «select».
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page')
Разбить заданный запрос на страницы с помощью простого пагинатора.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на части.
protected void hydratePivotRelation(array $models)
Заполнить отношение к таблице связей в моделях.
protected array cleanPivotAttributes(Модель $model)
Получить атрибуты pivot из модели.
Билдер getRelationQueryForSelfJoin(Билдер $query, Билдер $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения к той же таблице.
string getRelationCountHash()
Получить хеш таблицы объединения отношения.
protected BelongsToMany getSelectColumns(array $columns = ['*'])
Установить оператор select для запроса отношения.
protected array getAliasedPivotColumns()
Получить столбцы pivot для отношения.
protected bool hasPivotColumn(string $column)
Определить, является ли заданный столбец столбцом pivot.
protected $this setJoin(Билдер|null $query = null)
Установить оператор join для запроса отношения.
protected $this setWhere()
Установить оператор where для запроса отношения.
protected array buildDictionary(Коллекция $results)
Сформировать словарь модели, индексированный по внешнему ключу отношения.
Коллекция getRelatedIds()
Получить все идентификаторы связанных моделей.
Модель save(Модель $model, array $joining = [], bool $touch = true)
Сохранить новую модель и прикрепить ее к родительской модели.
array saveMany(Коллекция|array $models, array $joinings = [])
Сохранить массив новых моделей и прикрепить их к родительской модели.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
Коллекция|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes)
Получить первую связанную запись модели, соответствующую атрибутам, или создать её экземпляр.
Модель firstOrCreate(array $attributes, array $joining = [], bool $touch = true)
Получить первую связанную запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель create(array $attributes, array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели.
array createMany(array $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей.
array syncWithoutDetaching(Коллекция|array $ids)
Синхронизировать промежуточные таблицы со списком идентификаторов без отсоединения.
array sync(Коллекция|array $ids, bool $detaching = true)
Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей.
protected array formatSyncList(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 createAttachRecords(array $ids, array $attributes)
Создать массив записей для вставки в таблицу pivot.
protected array attacher(int $key, mixed $value, array $attributes, bool $timed)
Создать полную запись об прикреплении.
protected array getAttachId(mixed $key, mixed $value, array $attributes)
Получить идентификатор записи об прикреплении и дополнительные атрибуты.
protected array createAttachRecord(int $id, bool $timed)
Создать новую запись об прикреплении.
protected array setTimestampsOnAttach(array $record, bool $exists = false)
Установить метки времени создания и обновления для записи об прикреплении.
int detach(mixed $ids = [], bool $touch = true)
Отвязать модели от связи.
void touchIfTouching()
Если мы касаемся родительской модели, обновить ее.
protected bool touchingParent()
Определить, нужно ли обновлять родительскую модель при синхронизации.
protected string guessInverseRelation()
Попытка угадать имя обратной связи.
protected Builder newPivotQuery()
Создать новый объект запроса для вспомогательной таблицы.
Builder newPivotStatement()
Получить новый простой объект запроса для вспомогательной таблицы.
Builder newPivotStatementForId(mixed $id)
Получить новый запрос для вспомогательной таблицы по заданному идентификатору.
Pivot newPivot(array $attributes = [], bool $exists = false)
Создать новый экземпляр модели вспомогательной таблицы.
Pivot newExistingPivot(array $attributes = [])
Создать новый существующий экземпляр модели вспомогательной таблицы.
$this withPivot(array|mixed $columns)
Установить столбцы для выборки из вспомогательной таблицы.
BelongsToMany withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что вспомогательная таблица имеет метки времени создания и обновления.
string getRelatedFreshUpdate()
Получить имя столбца `updated_at` связанной модели.
string getHasCompareKey()
Получить ключ для сравнения с ключом родительской модели в запросе "has".
string getForeignKey()
Получить полное имя внешнего ключа для связи.
string getOtherKey()
Получить полное имя "другого ключа" для связи.
string getTable()
Получить промежуточную таблицу для связи.
string getRelationName()
Получить имя связи для связи.
string getMorphType()
Получить имя внешнего ключа "тип".
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/MorphToMany.html