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 |
| protected string | $table | Промежуточная таблица для отношения. | из BelongsToMany |
| protected string | $foreignKey | Внешний ключ родительской модели. | из BelongsToMany |
| protected string | $otherKey | Связанный ключ отношения. | из BelongsToMany |
| protected string | $relationName | Название отношения. | из BelongsToMany |
| protected array | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | из BelongsToMany |
| protected array | $pivotWheres | Любые ограничения для промежуточной таблицы. | из 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) Создать новый экземпляр отношения «многие ко многим». | |
| 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 = 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 |
| BelongsToMany | orWherePivot(string $column, string $operator = null, mixed $value = null) Установить условие or where для столбца таблицы связей. | из BelongsToMany |
| mixed | first(array $columns = array('*')) Выполнить запрос и получить первый результат. | из BelongsToMany |
| Model|BelongsToMany | firstOrFail(array $columns = array('*')) Выполнить запрос и получить первый результат или выбросить исключение. | из BelongsToMany |
| Collection | get(array $columns = array('*')) Выполнить запрос в качестве оператора «select». | из BelongsToMany |
| Paginator | paginate(int $perPage = null, array $columns = array('*')) Получить постраничный вывод для оператора «select». | из BelongsToMany |
| void | hydratePivotRelation(array $models) Гидратировать отношение к промежуточной таблице для моделей. | from BelongsToMany |
| array | cleanPivotAttributes(Model $model) Получить атрибуты промежуточной таблицы из модели. | from BelongsToMany |
| Builder | getRelationCountQueryForSelfJoin(Builder $query, Builder $parent) Добавить ограничения для запроса подсчёта отношений на одной таблице. | from BelongsToMany |
| string | getRelationCountHash() Получить хеш для соединения промежуточной таблицы. | from BelongsToMany |
| BelongsToMany | getSelectColumns(array $columns = array('*')) Установить запрос выбора колонок для отношения. | from BelongsToMany |
| array | getAliasedPivotColumns() Получить колонки промежуточной таблицы для отношения. | from BelongsToMany |
| bool | hasPivotColumn(string $column) Определить, является ли заданная колонка колонкой промежуточной таблицы. | from BelongsToMany |
| $this | setJoin(Builder|null $query = null) Установить условие объединения для запроса отношения. | from BelongsToMany |
| $this | setWhere() Установить условие where для запроса отношения. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | from BelongsToMany |
| array | getRelatedIds() Получить все ID связанных моделей. | from BelongsToMany |
| Model | save(Model $model, array $joining = array(), bool $touch = true) Сохранить новую модель и привязать её к родительской модели. | from BelongsToMany |
| array | saveMany(array $models, array $joinings = array()) Сохранить массив новых моделей и привязать их к родительской модели. | from BelongsToMany |
| Model | create(array $attributes, array $joining = array(), bool $touch = true) Создать новый экземпляр связанной модели. | from BelongsToMany |
| Model | createMany(array $records, array $joinings = array()) Создать массив новых экземпляров связанных моделей. | from BelongsToMany |
| array | sync(array $ids, bool $detaching = true) Синхронизировать промежуточные таблицы со списком ID или коллекцией моделей. | from BelongsToMany |
| array | formatSyncList(array $records) Отформатировать список синхронизации, индексированный по ID. | from BelongsToMany |
| array | attachNew(array $records, array $current, bool $touch = true) Присоединить все ID, которые не присутствуют в текущем массиве. | from BelongsToMany |
| void | updateExistingPivot(mixed $id, array $attributes, bool $touch = true) Обновить существующую запись промежуточной таблицы. | from BelongsToMany |
| void | attach(mixed $id, array $attributes = array(), bool $touch = true) Прикрепить модель к родительской. | from BelongsToMany |
| array | createAttachRecords(array $ids, array $attributes) Создать массив записей для вставки в промежуточную таблицу. | from BelongsToMany |
| array | attacher(int $key, mixed $value, array $attributes, bool $timed) Создать полную нагрузку записи присоединения. | from BelongsToMany |
| array | getAttachId(mixed $key, mixed $value, array $attributes) Получить ID записи присоединения и дополнительные атрибуты. | from BelongsToMany |
| array | createAttachRecord(int $id, bool $timed) Создать новую запись присоединения к промежуточной таблице. | |
| array | setTimestampsOnAttach(array $record, bool $exists = false) Установить метки времени создания и изменения для записи присоединения. | from BelongsToMany |
| int | detach(int|array $ids = array(), bool $touch = true) Отсоединить модели от отношения. | from BelongsToMany |
| void | touchIfTouching() Если нужно обновить метку времени родительской модели, обновить. | from BelongsToMany |
| bool | touchingParent() Определить, нужно ли обновлять метку времени родительской модели при синхронизации. | from BelongsToMany |
| строка | guessInverseRelation() Попытка определить имя обратного отношения. | из BelongsToMany |
| Builder | newPivotQuery() Создание нового билдера запросов для таблицы связей. | |
| Builder | newPivotStatement() Получение нового простого билдера запросов для таблицы связей. | из BelongsToMany |
| Builder | newPivotStatementForId(mixed $id) Получение нового оператора связей для заданного ID "другого" объекта. | из BelongsToMany |
| Pivot | newPivot(array $attributes = array(), bool $exists = false) Создание нового экземпляра модели связей. | |
| Pivot | newExistingPivot(array $attributes = array()) Создание нового существующего экземпляра модели связей. | из BelongsToMany |
| $this | withPivot(mixed $columns) Установить столбцы в таблице связей для извлечения. | из BelongsToMany |
| BelongsToMany | withTimestamps(mixed $createdAt = null, mixed $updatedAt = null) Указать, что таблица связей имеет метки времени создания и обновления. | из BelongsToMany |
| строка | getRelatedFreshUpdate() Получить имя столбца updated_at связанной модели. | из BelongsToMany |
| строка | getHasCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | из BelongsToMany |
| строка | getForeignKey() Получить полностью квалифицированный внешний ключ для отношения. | из BelongsToMany |
| строка | getOtherKey() Получить полностью квалифицированный "другой ключ" для отношения. | из BelongsToMany |
| строка | getTable() Получить промежуточную таблицу для взаимоотношений. | из BelongsToMany |
| строка | getRelationName() Получить имя отношения для взаимоотношений. | из BelongsToMany |
| строка | getMorphType() Получить имя внешнего ключа "type". | |
| строка | 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 = 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.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель 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 для столбца таблицы связи.
BelongsToMany orWherePivot(string $column, string $operator = null, mixed $value = null)
Установить условие or where для столбца таблицы связи.
mixed first(array $columns = array('*'))
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(array $columns = array('*'))
Выполнить запрос и получить первый результат или бросить исключение.
Коллекция get(array $columns = array('*'))
Выполнить запрос как операцию "select".
Пагинатор paginate(int $perPage = null, array $columns = array('*'))
Получить пагинатор для оператора "select".
protected void hydratePivotRelation(array $models)
Гидратировать отношение к таблице связей на моделях.
protected array cleanPivotAttributes(Модель $model)
Получить атрибуты связи из модели.
Билдер getRelationCountQueryForSelfJoin(Билдер $query, Билдер $parent)
Добавить ограничения для запроса подсчета отношений на одной таблице.
string getRelationCountHash()
Получить хэш таблицы связи для подсчета отношений.
protected BelongsToMany getSelectColumns(array $columns = array('*'))
Установить предложение select для запроса отношения.
protected array getAliasedPivotColumns()
Получить столбцы связи для отношения.
protected bool hasPivotColumn(string $column)
Определить, является ли заданный столбец столбцом связи.
protected $this setJoin(Билдер|null $query = null)
Установить предложение join для запроса отношения.
protected $this setWhere()
Установить предложение where для запроса отношения.
protected array buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения.
array getRelatedIds()
Получить все ID связанных моделей.
Модель save(Модель $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)
Синхронизировать промежуточные таблицы со списком ID или коллекцией моделей.
protected array formatSyncList(array $records)
Форматировать список синхронизации, индексируя его по ID.
protected array attachNew(array $records, array $current, bool $touch = true)
Привязать все ID, которые отсутствуют в текущем массиве.
void updateExistingPivot(mixed $id, array $attributes, bool $touch = true)
Обновить существующую запись связи в таблице.
void attach(mixed $id, array $attributes = array(), bool $touch = true)
Прикрепить модель к родительской.
protected array createAttachRecords(array $ids, array $attributes)
Создать массив записей для вставки в таблицу связи.
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(int|array $ids = array(), bool $touch = true)
Отвязать модели от связи.
void touchIfTouching()
Если мы трогаем родительскую модель, то трогаем.
protected bool touchingParent()
Определить, нужно ли трогать родительскую модель при синхронизации.
protected string guessInverseRelation()
Попытка угадать имя обратного отношения.
protected 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)
Указать, что таблица связи имеет метки времени создания и обновления.
string getRelatedFreshUpdate()
Получить имя столбца для обновления связанной модели.
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/4.2/Illuminate/Database/Eloquent/Relations/MorphToMany.html