BelongsToMany
класс BelongsToMany расширяет Relation (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| InteractsWithPivotTable | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищенный булево значение | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами морф в базе данных. | из Relation |
| статический защищенный булево значение | $requireMorphMap | Препятствует морф-связям без морф-карты. | из Relation |
| статический защищенный целое число | $selfJoinCount | Количество самосвязей. | из Relation |
| защищенная строка | $table | Промежуточная таблица для отношения. | |
| защищенная строка | $foreignPivotKey | Внешний ключ родительской модели. | |
| защищенная строка | $relatedPivotKey | Связанный ключ отношения. | |
| защищенная строка | $parentKey | Имя ключа родительской модели. | |
| защищенная строка | $relatedKey | Имя ключа связанной модели. | |
| защищенная строка | $relationName | «Имя» отношения. | |
| защищенный массив | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | |
| защищенный массив | $pivotWheres | Любые ограничения промежуточной таблицы для условий where. | |
| защищенный массив | $pivotWhereIns | Любые ограничения промежуточной таблицы для условий whereIn. | |
| защищенный массив | $pivotWhereNulls | Любые ограничения промежуточной таблицы для условий whereNull. | |
| защищенный массив | $pivotValues | Значения по умолчанию для столбцов промежуточной таблицы. | |
| булево значение | $withTimestamps | Указывает, доступны ли метки времени в промежуточной таблице. | |
| защищенная строка | $pivotCreatedAt | Пользовательский столбец промежуточной таблицы для метки времени created_at. | |
| защищенная строка | $pivotUpdatedAt | Пользовательский столбец промежуточной таблицы для метки времени updated_at. | |
| защищенная строка | $using | Имя класса пользовательской модели промежуточной таблицы для использования в отношении. | |
| защищенная строка | $accessor | Имя аксессора для использования в отношении «pivot». |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту. | from ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя. | from ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для заданного метода. | from ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | from Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Добавить другой объект в класс. | from Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | from Macroable |
| static void | flushMacros()
Очистить существующие макросы. | 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 $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)
Создать новый экземпляр отношения belongs to many. | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений в отношении. | from Relation |
| void | addConstraints()
Установить базовые ограничения в запросе отношения. | |
| void | addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки отношения. | |
| array | initRelation(array $models, string $relation)
Инициализировать отношение в наборе моделей. | |
| array | match(array $models, Collection $results, string $relation)
Сопоставить загруженные с ленивой загрузкой результаты с их родителями. | |
| mixed | getResults()
Получить результаты отношения. | |
| Collection | getEager()
Получить отношение для ленивой загрузки. | from Relation |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | from Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос как оператор «выбор». | |
| void | touch()
Обновить все связанные модели для отношения. | |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление базового запроса. | from Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношения. | from Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения. | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения. | from Relation |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения. | from Relation |
| Builder | getQuery()
Получить основной запрос для отношения. | from Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | from Relation |
| Model | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа для отношения. | |
| Model | getRelated()
Получить связанную модель отношения. | from Relation |
| string | createdAt()
Получить имя столбца "created at". | |
| string | updatedAt()
Получить имя столбца "updated at". | |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для леничной загрузки. | из Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление моделей. | из Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить карту морфирования для полиморфных отношений и потребовать явного сопоставления всех моделей, подвергшихся морфированию. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить карту морфирования для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone()
Вынуждает клонирование базового генератора запросов при клонировании. | из Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости преобразовав его в строку. | из InteractsWithDictionary |
| array | toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) от родителя. | из InteractsWithPivotTable |
| array | syncWithoutDetaching(Collection|Model|array $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без отсоединения. | из InteractsWithPivotTable |
| array | sync(Collection|Model|array $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей. | из InteractsWithPivotTable |
| array | syncWithPivotValues(Collection|Model|array $ids, array $values, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей со значениями связей. | из InteractsWithPivotTable |
| array | formatRecordsList(array $records)
Форматирует список записей синхронизации/переключения таким образом, чтобы он индексировался по идентификатору. | из InteractsWithPivotTable |
| array | attachNew(array $records, array $current, bool $touch = true)
Присоединить все записи, которые отсутствуют в предоставленных текущих записях. | из InteractsWithPivotTable |
| int | updateExistingPivot(mixed $id, array $attributes, bool $touch = true)
Обновить существующую запись связей в таблице. | из InteractsWithPivotTable |
| int | updateExistingPivotUsingCustomClass(mixed $id, array $attributes, bool $touch)
Обновить существующую запись связей в таблице с помощью пользовательского класса. | из InteractsWithPivotTable |
| void | attach(mixed $id, array $attributes = [], bool $touch = true)
Присоединить модель к родителю. | из InteractsWithPivotTable |
| void | attachUsingCustomClass(mixed $id, array $attributes)
Присоединить модель к родителю с помощью пользовательского класса. | из InteractsWithPivotTable |
| array | formatAttachRecords(array $ids, array $attributes)
Создать массив записей для вставки в таблицу связей. | из InteractsWithPivotTable |
| array | formatAttachRecord(int $key, mixed $value, array $attributes, bool $hasTimestamps)
Создать полную нагрузку записи присоединения. | из InteractsWithPivotTable |
| array | extractAttachIdAndAttributes(mixed $key, mixed $value, array $attributes)
Получить идентификатор записи присоединения и дополнительные атрибуты. | из InteractsWithPivotTable |
| array | baseAttachRecord(int $id, bool $timed)
Создать новую запись присоединения связей. | из InteractsWithPivotTable |
| array | addTimestampsToAttachment(array $record, bool $exists = false)
Установите временные метки создания и обновления для записи прикрепления. | из InteractsWithPivotTable |
| bool | hasPivotColumn(string $column)
Определите, является ли заданный столбец столбцом-связью. | из InteractsWithPivotTable |
| int | detach(mixed $ids = null, bool $touch = true)
Отсоединить модели от связи. | из InteractsWithPivotTable |
| int | detachUsingCustomClass(mixed $ids)
Отсоединить модели от связи, используя пользовательский класс. | из InteractsWithPivotTable |
| Collection | getCurrentlyAttachedPivots()
Получить модели-связи, которые в настоящее время присоединены. | из InteractsWithPivotTable |
| Pivot | newPivot(array $attributes = [], bool $exists = false)
Создать новый экземпляр модели-связи. | из InteractsWithPivotTable |
| Pivot | newExistingPivot(array $attributes = [])
Создать новый существующий экземпляр модели-связи. | из InteractsWithPivotTable |
| Builder | newPivotStatement()
Получить новый простой билдер запроса для таблицы-связи. | из InteractsWithPivotTable |
| Builder | newPivotStatementForId(mixed $id)
Получить новый запрос для связи по заданному идентификатору. | из InteractsWithPivotTable |
| Builder | newPivotQuery()
Создать новый билдер запроса для таблицы-связи. | из InteractsWithPivotTable |
| $this | withPivot(array|mixed $columns)
Установить столбцы в таблице-связи для извлечения. | из InteractsWithPivotTable |
| array | parseIds(mixed $value)
Получить все идентификаторы из заданного значения. | из InteractsWithPivotTable |
| mixed | parseId(mixed $value)
Получить идентификатор из заданного значения. | из InteractsWithPivotTable |
| array | castKeys(array $keys)
Преобразовать заданные ключи в целые числа, если они числовые, и в строки в противном случае. | из InteractsWithPivotTable |
| mixed | castKey(mixed $key)
Преобразовать заданный ключ для преобразования в тип первичного ключа. | из InteractsWithPivotTable |
| array | castAttributes(array $attributes)
Преобразовать заданные атрибуты связи. | из InteractsWithPivotTable |
| mixed | getTypeSwapValue(string $type, mixed $value)
Преобразует заданное значение в значение заданного типа. | из InteractsWithPivotTable |
| string | resolveTableName(string $table)
Попытка разрешить имя промежуточной таблицы из заданной строки. | |
| $this | performJoin(Builder|null $query = null)
Установить условие соединения для запроса связи. | |
| $this | addWhereConstraints()
Установить условие where для запроса связи. | |
| array | buildDictionary(Collection $results)
Построить словарь модели, индексированный по внешнему ключу связи. | |
| string | getPivotClass()
Получить класс, используемый для моделей-связей. | |
| $this | using(string $class)
Указать пользовательскую модель связи для использования в отношении. | |
| $this | as(string $accessor)
Указать пользовательский аксессор связи для использования в отношении. | |
| $this | wherePivot(string $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца таблицы-связи. | |
| $this | wherePivotBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
Установить условие «между» для столбца таблицы-связи. | |
| $this | orWherePivotBetween(string $column, array $values)
Установить условие «или между» для столбца таблицы-связи. | |
| $this | wherePivotNotBetween(string $column, array $values, string $boolean = 'and')
Установить условие «не между» для столбца таблицы-связи. | |
| $this | orWherePivotNotBetween(string $column, array $values)
Установить условие «или не между» для столбца таблицы-связи. | |
| $this | wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «входит» для столбца таблицы-связи. | |
| $this | orWherePivot(string $column, mixed $operator = null, mixed $value = null)
Установить условие «или где» для столбца таблицы-связи. |
| $this | withPivotValue(string|array $column, mixed $value = null)
Установить условие where для столбца таблицы связей. | |
| $this | orWherePivotIn(string $column, mixed $values)
Установить условие "or where in" для столбца таблицы связей. | |
| $this | wherePivotNotIn(string $column, mixed $values, string $boolean = 'and')
Установить условие "where not in" для столбца таблицы связей. | |
| $this | orWherePivotNotIn(string $column, mixed $values)
Установить условие "or where not in" для столбца таблицы связей. | |
| $this | wherePivotNull(string $column, string $boolean = 'and', bool $not = false)
Установить условие "where null" для столбца таблицы связей. | |
| $this | wherePivotNotNull(string $column, string $boolean = 'and')
Установить условие "where not null" для столбца таблицы связей. | |
| $this | orWherePivotNull(string $column, bool $not = false)
Установить условие "or where null" для столбца таблицы связей. | |
| $this | orWherePivotNotNull(string $column)
Установить условие "or where not null" для столбца таблицы связей. | |
| $this | orderByPivot(string $column, string $direction = 'asc')
Добавить условие "order by" для столбца таблицы связей. | |
| Collection|Модель | 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)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| Модель|Коллекция|null | find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу. | |
| Коллекция | findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам. | |
| Модель|Коллекция | findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу, иначе выбросить исключение. | |
| Модель|BelongsToMany | firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат. | |
| mixed | first(array $columns = ['*'])
Выполнить запрос и получить первый результат. | |
| Модель|BelongsToMany | firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат, иначе выбросить исключение. | |
| Модель|BelongsToMany|mixed | firstOr(Closure|array $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов. | |
| array | shouldSelect(array $columns = ['*'])
Получить столбцы select для запроса связи. | |
| array | aliasedPivotColumns()
Получить столбцы таблицы связей для связи. | |
| LengthAwarePaginator | paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Получить пагинатор для запроса "select". | |
| Paginator | simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Осуществить пагинацию заданного запроса с помощью простого пагинатора. | |
| CursorPaginator | cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = null)
Осуществить пагинацию заданного запроса с помощью пагинатора с курсором. | |
| bool | chunk(int $count, callable $callback)
Разбить результаты запроса на куски. | |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы. | |
| bool | each(callable $callback, int $count = 1000)
Выполнить обратный вызов над каждым элементом с разбиением на куски. | |
| LazyCollection | lazy(int $chunkSize = 1000)
Лениво выполнить запрос кусками заданного размера. | |
| LazyCollection | lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Лениво выполнить запрос, разбивая результаты на куски по сравниванию идентификаторов. | |
| LazyCollection | cursor()
Получить ленивую коллекцию для данного запроса. | |
| Builder | prepareQueryBuilder()
Подготовить билдер запроса к выполнению. | |
| void | hydratePivotRelation(array $models)
Заполнить отношения таблицы связей для моделей. | |
| array | migratePivotAttributes(Модель $model)
Получить атрибуты таблицы связей из модели. | |
| void | touchIfTouching()
Если необходимо обновить родительскую модель, обновить её. |
| bool | touchingParent()
Определить, нужно ли коснуться родителя при синхронизации. | |
| string | guessInverseRelation()
Попытка угадать имя обратного отношения. | |
| Collection | allRelatedIds()
Получить все идентификаторы связанных моделей. | |
| Model | save(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и прикрепить её к родительской модели. | |
| array | saveMany(Collection|array $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели. | |
| Model | create(array $attributes = [], array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели. | |
| array | createMany(iterable $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей. | |
| Builder | getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице. | |
| string | getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе «has». | |
| $this | withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что сводная таблица имеет метки создания и обновления. | |
| string | getForeignPivotKeyName()
Получить внешний ключ для отношения. | |
| string | getQualifiedForeignPivotKeyName()
Получить полностью квалифицированный внешний ключ для отношения. | |
| string | getRelatedPivotKeyName()
Получить «связанный ключ» для отношения. | |
| string | getQualifiedRelatedPivotKeyName()
Получить полностью квалифицированный «связанный ключ» для отношения. | |
| string | getParentKeyName()
Получить родительский ключ для отношения. | |
| string | getRelatedKeyName()
Получить связанный ключ для отношения. | |
| string | getQualifiedRelatedKeyName()
Получить полностью квалифицированное имя связанного ключа для отношения. | |
| string | getTable()
Получить промежуточную таблицу для отношения. | |
| string | getRelationName()
Получить имя отношения для отношения. | |
| string | getPivotAccessor()
Получить имя аксессора сводной таблицы для этого отношения. | |
| array | getPivotColumns()
Получить столбцы сводной таблицы для этого отношения. | |
| string | qualifyPivotColumn(string $column)
Квалифицировать данное имя столбца по таблице сводной таблицы. |
Details
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для заданного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрировано ли макро.
static void flushMacros()
Очистить существующие макросы.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса.
смешанный __call(string $method, array $parameters)
Динамически обрабатывает вызовы к классу.
void __construct(Builder $query, Модель $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)
Создает новый экземпляр связи belongs to many.
статический смешанный noConstraints(Closure $callback)
Выполняет обратный вызов без ограничений для связи.
void addConstraints()
Устанавливает базовые ограничения для запроса связи.
void addEagerConstraints(array $models)
Устанавливает ограничения для отложенной загрузки связи.
array initRelation(array $models, string $relation)
Инициализирует связь для набора моделей.
array match(array $models, Коллекция $results, string $relation)
Сопоставляет загруженные с отложенной загрузкой результаты с их родителями.
смешанный getResults()
Получить результаты связи.
Коллекция getEager()
Получить связь для отложенной загрузки.
Модель sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Коллекция get(array $columns = ['*'])
Выполнить запрос как операцию «выбрать».
void touch()
Обновить все связанные модели для связи.
Например: Обновить все роли, связанные с этим пользователем.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление в основном запросе.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования связи.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи.
строка getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения для связи.
защищенный array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить билдер запроса, который будет содержать ограничения для связи.
Builder getQuery()
Получить базовый запрос для связи.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя ключа родительской таблицы для связи.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных связей без отображения моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные связи явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить отображение морф для полиморфных связей и потребовать, чтобы все модели, к которым относится морфинг, были явно сопоставлены.
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()
Вынужденная клонирование подчинённого билдера запросов при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут словаря ключей — при необходимости преобразовав его в строку.
array toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) из родительской модели.
Каждая существующая модель отсоединяется, а несуществующая — присоединяется.
array syncWithoutDetaching(Коллекция|Модель|array $ids)
Синхронизировать промежуточные таблицы со списком идентификаторов без отсоединения.
array sync(Коллекция|Модель|array $ids, bool $detaching = true)
Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей.
array syncWithPivotValues(Collection|Модель|array $ids, array $values, 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)
Обновляет существующую запись связи в таблице.
protected int updateExistingPivotUsingCustomClass(mixed $id, array $attributes, bool $touch)
Обновляет существующую запись связи в таблице через пользовательский класс.
void attach(mixed $id, array $attributes = [], bool $touch = true)
Прикрепляет модель к родительской.
protected void attachUsingCustomClass(mixed $id, array $attributes)
Прикрепляет модель к родительской используя пользовательский класс.
protected array formatAttachRecords(array $ids, array $attributes)
Создает массив записей для вставки в таблицу связей.
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)
Создание новой записи прикрепления связи.
protected array addTimestampsToAttachment(array $record, bool $exists = false)
Установка временных меток создания и обновления для записи прикрепления.
bool hasPivotColumn(string $column)
Определяет, определен ли заданный столбец как столбец связи.
int detach(mixed $ids = null, bool $touch = true)
Отсоединение моделей от отношения.
protected int detachUsingCustomClass(mixed $ids)
Отсоединение моделей от отношения используя пользовательский класс.
protected Collection getCurrentlyAttachedPivots()
Получение моделей связей, которые в данный момент прикреплены.
Связь newPivot(array $attributes = [], bool $exists = false)
Создание нового экземпляра модели связи.
Связь newExistingPivot(array $attributes = [])
Создание нового экземпляра существующей модели связи.
Builder newPivotStatement()
Получить новый простой билдер запросов для таблицы связей.
Builder newPivotStatementForId(mixed $id)
Получить новое выражение для связующей таблицы по заданному ID.
Builder newPivotQuery()
Создать новый билдер запросов для таблицы связей.
$this withPivot(array|mixed $columns)
Установить столбцы в таблице связей для извлечения.
protected array parseIds(mixed $value)
Получить все идентификаторы из данного значения смешанного типа.
protected mixed parseId(mixed $value)
Получить идентификатор из данного значения смешанного типа.
protected array castKeys(array $keys)
Преобразовать заданные ключи в целые числа, если они являются числовыми, и в строки в противном случае.
protected mixed castKey(mixed $key)
Преобразовать заданный ключ в тип первичного ключа.
protected array castAttributes(array $attributes)
Преобразовать заданные атрибуты связующей таблицы.
protected mixed getTypeSwapValue(string $type, mixed $value)
Преобразует заданное значение в значение заданного типа.
protected string resolveTableName(string $table)
Попытаться определить имя промежуточной таблицы по заданной строке.
protected $this performJoin(Builder|null $query = null)
Установить условие объединения для запроса отношения.
protected $this addWhereConstraints()
Установить условие where для запроса отношения.
protected array buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
string getPivotClass()
Получить класс, используемый для моделей связующей таблицы.
$this using(string $class)
Указать пользовательскую модель для связующей таблицы для отношения.
$this as(string $accessor)
Указать пользовательский аксессор для связующей таблицы для отношения.
$this wherePivot(string $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца связующей таблицы.
$this wherePivotBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
Установить условие "where between" для столбца связующей таблицы.
$this orWherePivotBetween(string $column, array $values)
Установить условие "or where between" для столбца связующей таблицы.
$this wherePivotNotBetween(string $column, array $values, string $boolean = 'and')
Установить условие "where pivot not between" для столбца связующей таблицы.
$this orWherePivotNotBetween(string $column, array $values)
Установить условие «или не между» для столбца таблицы сводки.
$this wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «где в» для столбца таблицы сводки.
$this orWherePivot(string $column, mixed $operator = null, mixed $value = null)
Установить условие «или где» для столбца таблицы сводки.
$this withPivotValue(string|array $column, mixed $value = null)
Установить условие «где» для столбца таблицы сводки.
Кроме того, новые записи сводки будут получать это значение.
$this orWherePivotIn(string $column, mixed $values)
Установить условие «или где в» для столбца таблицы сводки.
$this wherePivotNotIn(string $column, mixed $values, string $boolean = 'and')
Установить условие «где не в» для столбца таблицы сводки.
$this orWherePivotNotIn(string $column, mixed $values)
Установить условие «или где не в» для столбца таблицы сводки.
$this wherePivotNull(string $column, string $boolean = 'and', bool $not = false)
Установить условие «где пусто» для столбца таблицы сводки.
$this wherePivotNotNull(string $column, string $boolean = 'and')
Установить условие «где не пусто» для столбца таблицы сводки.
$this orWherePivotNull(string $column, bool $not = false)
Установить условие «или где пусто» для столбца таблицы сводки.
$this orWherePivotNotNull(string $column)
Установить условие «или где не пусто» для столбца таблицы сводки.
$this orderByPivot(string $column, string $direction = 'asc')
Добавить условие «сортировать по» для столбца таблицы сводки.
Collection|Модель 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)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(Arrayable|массив $ids, массив $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(смешанный $id, массив $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
Модель|BelongsToMany firstWhere(Closure|строка|массив $column, смешанный $operator = null, смешанный $value = null, строка $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат.
смешанный first(массив $columns = ['*'])
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(массив $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|BelongsToMany|смешанный firstOr(Closure|массив $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов.
protected массив shouldSelect(массив $columns = ['*'])
Получить столбцы select для запроса отношения.
protected массив aliasedPivotColumns()
Получить столбцы pivot для отношения.
"pivot_" добавляется в префикс к каждому столбцу для простоты удаления позже.
LengthAwarePaginator paginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое|null $page = null)
Получить пагинатор для оператора "select".
Paginator simplePaginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое|null $page = null)
Разбить заданный запрос на страницы с помощью простого пагинатора.
CursorPaginator cursorPaginate(целое|null $perPage = null, массив $columns = ['*'], строка $cursorName = 'cursor', строка|null $cursor = null)
Разбить заданный запрос на страницы с помощью пагинатора с указателем.
булево chunk(целое $count, вызываемый $callback)
Разбить результаты запроса на куски.
булево chunkById(целое $count, вызываемый $callback, строка|null $column = null, строка|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
булево each(вызываемый $callback, целое $count = 1000)
Выполнить обратный вызов для каждого элемента с использованием кусков.
LazyCollection lazy(int $chunkSize = 1000)
Запрос лениво, по частям заданного размера.
LazyCollection lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Запрос лениво, разбивая результаты запроса на части, сравнивая идентификаторы.
LazyCollection cursor()
Получить ленивую коллекцию для данного запроса.
protected Builder prepareQueryBuilder()
Подготовить билдер запроса для выполнения запроса.
protected void hydratePivotRelation(array $models)
Гидратировать отношение таблицы связей на моделях.
protected array migratePivotAttributes(Model $model)
Получить атрибуты связующей таблицы из модели.
void touchIfTouching()
Если мы касаемся родительской модели, коснитесь её.
protected bool touchingParent()
Определить, нужно ли касаться родителя при синхронизации.
protected string guessInverseRelation()
Попытка угадать имя обратного отношения.
Collection allRelatedIds()
Получить все идентификаторы для связанных моделей.
Model save(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и прикрепить её к родительской модели.
array saveMany(Collection|array $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели.
Model create(array $attributes = [], array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели.
array createMany(iterable $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей.
Builder getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
$this withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что в таблице связей есть метки времени создания и обновления.
string getForeignPivotKeyName()
Получить внешний ключ для отношения.
string getQualifiedForeignPivotKeyName()
Получить полностью квалифицированный внешний ключ для отношения.
string getRelatedPivotKeyName()
Получить «связанный ключ» для отношения.
string getQualifiedRelatedPivotKeyName()
Получить полное квалифицированное имя "связанного ключа" для отношения.
string getParentKeyName()
Получить родительский ключ для отношения.
string getRelatedKeyName()
Получить связанный ключ для отношения.
string getQualifiedRelatedKeyName()
Получить полное квалифицированное имя связанного ключа для отношения.
string getTable()
Получить промежуточную таблицу для отношения.
string getRelationName()
Получить имя отношения для отношения.
string getPivotAccessor()
Получить имя аксессора pivot для этого отношения.
array getPivotColumns()
Получить столбцы pivot для этого отношения.
string qualifyPivotColumn(string $column)
Квалифицировать заданное имя столбца по таблице pivot.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Relations/BelongsToMany.html