BelongsToMany
class BelongsToMany extends Relation (View source)
Свойства
| protected Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| protected string | $table | Промежуточная таблица для отношения. | |
| protected string | $foreignKey | Внешний ключ родительской модели. | |
| protected string | $otherKey | Связанный ключ отношения. | |
| protected string | $relationName | Имя отношения. | |
| protected array | $pivotColumns | Столбцы промежуточной таблицы для получения. | |
| protected array | $pivotWheres | Любые ограничения для промежуточной таблицы. |
Методы
| void | __construct(Builder $query, Model $parent, string $table, string $foreignKey, string $otherKey, string $relationName = null) Создать новый экземпляр отношения «многие ко многим». | |
| void | addConstraints() Установить базовые ограничения для запроса отношения. | |
| void | addEagerConstraints(array $models) Установить ограничения для жадного загрузки отношения. | |
| array | initRelation(array $models, string $relation) Инициализировать отношение для набора моделей. | |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные результаты с родительскими элементами. | |
| mixed | getResults() Получить результаты отношения. | |
| Collection | getEager() Получить отношение для жадной загрузки. | из Relation |
| void | touch() Обновить метки времени всех связанных моделей для отношения. | |
| int | rawUpdate(array $attributes = array()) Выполнить сырое обновление для базового запроса. | из Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта отношения. | |
| 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() Получить имя столбца «дата создания». | из Relation |
| string | updatedAt() Получить имя столбца «дата обновления». | из Relation |
| string | relatedUpdatedAt() Получить имя столбца «дата обновления» связанной модели. | из Relation |
| string | wrap(string $value) Оборачивает заданное значение синтаксисом грамматики родительского запроса. | из Relation |
| mixed | __call(string $method, array $parameters) Обработка динамических вызовов методов для отношения. | из Relation |
| BelongsToMany | wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and') Установить условие where для столбца таблицы связей. | |
| BelongsToMany | orWherePivot(string $column, string $operator = null, mixed $value = null) Установить условие orWhere для столбца таблицы связей. | |
| mixed | first(array $columns = array('*')) Выполнить запрос и получить первый результат. | |
| Model|BelongsToMany | firstOrFail(array $columns = array('*')) Выполнить запрос и получить первый результат или выбросить исключение. | |
| Collection | get(array $columns = array('*')) Выполнить запрос как операцию «выбрать». | |
| Paginator | paginate(int $perPage = null, array $columns = array('*')) Получить разбиение на страницы для оператора «выбрать». | |
| void | hydratePivotRelation(array $models) Гидратировать отношение для таблицы связей в моделях. | |
| array | cleanPivotAttributes(Model $model) Получить атрибуты связующей таблицы из модели. | |
| Builder | getRelationCountQueryForSelfJoin(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта отношения для самосоединения. | |
| string | getRelationCountHash() Получить хеш таблицы связей для отношения. | |
| BelongsToMany | getSelectColumns(array $columns = array('*')) Установить оператор select для запроса отношения. |
| массив | getAliasedPivotColumns() Получить столбцы связующей таблицы для отношения. | |
| bool | hasPivotColumn(string $column) Определить, является ли заданный столбец столбцом связующей таблицы. | |
| $this | setJoin(Builder|null $query = null) Установить условие объединения для запроса отношения. | |
| $this | setWhere() Установить условие where для запроса отношения. | |
| массив | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | |
| массив | getRelatedIds() Получить все идентификаторы связанных моделей. | |
| Модель | save(Модель $model, array $joining = array(), bool $touch = true) Сохранить новую модель и прикрепить её к родительской модели. | |
| массив | saveMany(array $models, array $joinings = array()) Сохранить массив новых моделей и прикрепить их к родительской модели. | |
| Модель | create(array $attributes, array $joining = array(), bool $touch = true) Создать новую экземпляр связанной модели. | |
| Модель | createMany(array $records, array $joinings = array()) Создать массив новых экземпляров связанных моделей. | |
| массив | sync(array $ids, bool $detaching = true) Синхронизировать связующую таблицу с списком идентификаторов или коллекцией моделей. | |
| массив | formatSyncList(array $records) Отформатировать список синхронизации, чтобы он индексировался по идентификатору. | |
| массив | attachNew(array $records, array $current, bool $touch = true) Прикрепить все идентификаторы, которые отсутствуют в текущем массиве. | |
| void | updateExistingPivot(mixed $id, array $attributes, bool $touch = true) Обновить существующую запись в связующей таблице. | |
| void | attach(mixed $id, array $attributes = array(), bool $touch = true) Прикрепить модель к родительской. | |
| массив | createAttachRecords(array $ids, array $attributes) Создать массив записей для вставки в связующую таблицу. | |
| массив | attacher(int $key, mixed $value, array $attributes, bool $timed) Создать полную запись прикрепления. | |
| массив | getAttachId(mixed $key, mixed $value, array $attributes) Получить идентификатор записи прикрепления и дополнительные атрибуты. | |
| массив | createAttachRecord(int $id, bool $timed) Создать новую запись прикрепления. | |
| массив | setTimestampsOnAttach(array $record, bool $exists = false) Установить метки времени создания и изменения для записи прикрепления. | |
| int | detach(int|array $ids = array(), bool $touch = true) Отделить модели от отношения. | |
| void | touchIfTouching() Если родительская модель должна быть обновлена, обновить её. | |
| bool | touchingParent() Определить, нужно ли обновить родительскую модель при синхронизации. | |
| строка | guessInverseRelation() Попытка угадать имя обратного отношения. | |
| Builder | newPivotQuery() Создать новый объект запроса для связующей таблицы. | |
| Builder | newPivotStatement() Получить новый простой объект запроса для связующей таблицы. | |
| Builder | newPivotStatementForId(mixed $id) Получить новый запрос для связующей таблицы по заданному идентификатору. | |
| Pivot | newPivot(array $attributes = array(), bool $exists = false) Создать новый экземпляр модели связующей таблицы. | |
| Pivot | newExistingPivot(array $attributes = array()) Создать новый существующий экземпляр модели связующей таблицы. | |
| $this | withPivot(mixed $columns) Установить столбцы для извлечения из связующей таблицы. | |
| BelongsToMany | withTimestamps(mixed $createdAt = null, mixed $updatedAt = null) Указать, что связующая таблица имеет метки времени создания и изменения. | |
| строка | getRelatedFreshUpdate() Получить имя столбца для обновления связанной модели. | |
| строка | getHasCompareKey() Получить ключ для сравнения со значением родительского ключа в запросе has. | |
| строка | getForeignKey() Получить полное имя внешнего ключа для отношения. | |
| строка | getOtherKey() Получить полное имя «другого» ключа для отношения. | |
| строка | getTable() Получить связующую таблицу для отношения. | |
| строка | getRelationName() Получить имя отношения. |
Подробности
void __construct(Builder $query, Модель $parent, string $table, string $foreignKey, string $otherKey, string $relationName = null)
Создать новое отношение has many.
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 = array())
Выполнить прямое обновление по базовому запросу.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчета связи.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями на связи.
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" связанной модели.
string wrap(string $value)
Обернуть заданное значение синтаксическим анализатором родительского запроса.
mixed __call(string $method, array $parameters)
Обработать динамические вызовы методов к связи.
BelongsToMany wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца таблицы pivot.
BelongsToMany orWherePivot(string $column, string $operator = null, mixed $value = null)
Установить или или условие для столбца таблицы связи.
mixed first(array $columns = array('*'))
Выполнить запрос и получить первый результат.
Model|BelongsToMany firstOrFail(array $columns = array('*'))
Выполнить запрос и получить первый результат или выбросить исключение.
Collection get(array $columns = array('*'))
Выполнить запрос как оператор "select".
Paginator paginate(int $perPage = null, array $columns = array('*'))
Получить пагинатор для оператора "select".
protected void hydratePivotRelation(array $models)
Загрузить отношение таблицы связи для моделей.
protected array cleanPivotAttributes(Model $model)
Получить атрибуты связи из модели.
Builder getRelationCountQueryForSelfJoin(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчета отношения по одной и той же таблице.
string getRelationCountHash()
Получить хэш таблицы связи.
protected BelongsToMany getSelectColumns(array $columns = array('*'))
Установить предложение select для запроса отношения.
protected array getAliasedPivotColumns()
Получить столбцы связи для отношения.
protected bool hasPivotColumn(string $column)
Определить, определен ли данный столбец как столбец связи.
protected $this setJoin(Builder|null $query = null)
Установить предложение join для запроса отношения.
protected $this setWhere()
Установить предложение where для запроса отношения.
protected array buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
array getRelatedIds()
Получить все идентификаторы связанных моделей.
Model save(Model $model, array $joining = array(), bool $touch = true)
Сохранить новую модель и прикрепить ее к родительской модели.
array saveMany(array $models, array $joinings = array())
Сохранить массив новых моделей и прикрепить их к родительской модели.
Модель create(array $attributes, array $joining = array(), bool $touch = true)
Создать новый экземпляр связанной модели.
Модель createMany(array $records, array $joinings = array())
Создать массив новых экземпляров связанных моделей.
array sync(array $ids, bool $detaching = true)
Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей.
protected array formatSyncList(array $records)
Отформатировать список синхронизации таким образом, чтобы он индексировался по идентификатору.
protected array attachNew(array $records, array $current, bool $touch = true)
Присоединить все идентификаторы, которые отсутствуют в текущем массиве.
void updateExistingPivot(mixed $id, array $attributes, bool $touch = true)
Обновить существующую запись pivot в таблице.
void attach(mixed $id, array $attributes = array(), 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)
Создать новую запись присоединения pivot.
protected array setTimestampsOnAttach(array $record, bool $exists = false)
Установить метки создания и изменения на записи присоединения.
int detach(int|array $ids = array(), bool $touch = true)
Отсоединить модели от взаимосвязи.
void touchIfTouching()
Если мы затрагиваем родительскую модель, то затрагиваем её.
protected bool touchingParent()
Определить, нужно ли затрагивать родительскую модель при синхронизации.
protected string guessInverseRelation()
Попытка угадать имя обратной взаимосвязи.
protected Билдер newPivotQuery()
Создать новый билдер запроса для таблицы pivot.
Билдер newPivotStatement()
Получить новый простой билдер запроса для таблицы pivot.
Билдер newPivotStatementForId(mixed $id)
Получить новый билдер запроса pivot для заданного идентификатора «другой».
Pivot newPivot(array $attributes = array(), bool $exists = false)
Создать новый экземпляр модели pivot.
Pivot newExistingPivot(array $attributes = array())
Создать новый существующий экземпляр модели соединения.
$this withPivot(mixed $columns)
Установить столбцы в таблице соединения для извлечения.
BelongsToMany withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что таблица соединения имеет метки создания и обновления.
string getRelatedFreshUpdate()
Получить имя столбца «обновлено» связанной модели.
string getHasCompareKey()
Получить ключ для сравнения с родительским ключом в запросе «has».
string getForeignKey()
Получить полное имя внешнего ключа для связи.
string getOtherKey()
Получить полное имя «другого ключа» для связи.
string getTable()
Получить промежуточную таблицу для связи.
string getRelationName()
Получить имя связи для связи.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/4.2/Illuminate/Database/Eloquent/Relations/BelongsToMany.html