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 | Массив для сопоставления имен классов с их именами morph в базе данных. | из 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 | Пользовательский столбец промежуточной таблицы для метки created_at. | из BelongsToMany |
| protected string | $pivotUpdatedAt | Пользовательский столбец промежуточной таблицы для метки updated_at. | из BelongsToMany |
| static protected int | $selfJoinCount | Количество самосоединений. | из BelongsToMany |
| protected string | $morphType | Тип полиморфного отношения. | |
| protected string | $morphClass | Имя класса ограничения morph типа. | |
| 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 = []) Выполнить обновление по базовому запросу. | из 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) Установить или получить карту морфизма для полиморфных отношений. | из 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) Установить условие «или где» для столбца таблицы связей. | from BelongsToMany |
| BelongsToMany | orWherePivotIn(string $column, mixed $values) Установить условие «или где в» для столбца таблицы связей. | from BelongsToMany |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первый результат. | from BelongsToMany |
| Model|BelongsToMany | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат, или выбросить исключение. | from BelongsToMany |
| Collection | get(array $columns = ['*']) Выполнить запрос как операцию «select». | 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') Разбить заданный запрос на страницы с использованием простого пагинатора. | from BelongsToMany |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на части. | from BelongsToMany |
| void | hydratePivotRelation(array $models) Заполнить отношение таблицы связей для моделей. | from BelongsToMany |
| array | cleanPivotAttributes(Model $model) Получить атрибуты таблицы связей из модели. | from BelongsToMany |
| Builder | getRelationQueryForSelfJoin(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения к той же таблице. | from BelongsToMany |
| string | getRelationCountHash() Получить хэш таблицы связей для подсчёта. | from BelongsToMany |
| BelongsToMany | getSelectColumns(array $columns = ['*']) Установить оператор select для запроса отношения. | from BelongsToMany |
| array | getAliasedPivotColumns() Получить столбцы таблицы связей для отношения. | from BelongsToMany |
| bool | hasPivotColumn(string $column) Определить, определён ли заданный столбец как столбец таблицы связей. | from BelongsToMany |
| $this | setJoin(Builder|null $query = null) Установить оператор join для запроса отношения. | from BelongsToMany |
| $this | setWhere() Установить оператор where для запроса отношения. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | from BelongsToMany |
| Collection | getRelatedIds() Получить все идентификаторы связанных моделей. | from BelongsToMany |
| Model | save(Model $model, array $joining = [], bool $touch = true) Сохранить новую модель и привязать её к родительской модели. | from BelongsToMany |
| array | saveMany(Collection|array $models, array $joinings = []) Сохранить массив новых моделей и привязать их к родительской модели. | 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 |
| Коллекция|Модель | 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 |
| boolean | 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 |
| string | getRelatedFreshUpdate() Получить имя столбца updated_at связанной модели. | from BelongsToMany |
| string | getHasCompareKey() Получить ключ для сравнения со значением родительского ключа в запросе «has». | from BelongsToMany |
| string | getForeignKey() Получить полностью квалифицированный внешний ключ для связи. | from BelongsToMany |
| string | getOtherKey() Получить полностью квалифицированный «другой ключ» для связи. | from BelongsToMany |
| string | getTable() Получить промежуточную таблицу для связи. | from BelongsToMany |
| string | getRelationName() Получить имя связи для связи. | from BelongsToMany |
| string | getMorphType() Получить имя внешнего ключа «тип». | |
| string | 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)
Установить ограничения для ленивой загрузки связи.
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 getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчёта связи.
Builder getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса подсчёта связи.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключёнными ограничениями в связи.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запросов, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
строка getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
строка createdAt()
Получить имя столбца "created at".
строка updatedAt()
Получить имя столбца "updated at".
строка relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
строка wrap(string $value)
Оборачивает заданное значение с помощью грамматики родительского запроса.
static массив morphMap(array $map = null, bool $merge = true)
Установить или получить морф-карту для полиморфных отношений.
static protected массив|null buildMorphMapFromModels(array $models = null)
Создаёт таблично-ключевой массив из имён классов моделей.
смешанное __call(string $method, array $parameters)
Обработка динамических вызовов метода для отношения.
пустое __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.
смешанное 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)
Заполнить отношения посредством таблицы pivot для моделей.
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)
Синхронизировать таблицы со связями с помощью списка ID без отсоединения.
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, которые отсутствуют в текущем массиве.
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()
Получить имя столбца обновлений связанной модели.
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.3/Illuminate/Database/Eloquent/Relations/MorphToMany.html