BelongsToMany
класс BelongsToMany расширяет Relation (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| InteractsWithPivotTable | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent билдера запросов. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их морф именами в базе данных. | из Relation |
| статический защищённый bool | $requireMorphMap | Предотвращает морф отношения без морф карты. | из Relation |
| статический защищённый int | $selfJoinCount | Количество самосоединений. | из Relation |
| защищённый string | $table | Промежуточная таблица для отношения. | |
| защищённый string | $foreignPivotKey | Внешний ключ родительской модели. | |
| защищённый string | $relatedPivotKey | Связанный ключ отношения. | |
| защищённый string | $parentKey | Имя ключа родительской модели. | |
| защищённый string | $relatedKey | Имя ключа связанной модели. | |
| защищённый string | $relationName | «Имя» отношения. | |
| защищённый массив | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | |
| защищённый массив | $pivotWheres | Любые ограничения промежуточной таблицы для условий where. | |
| защищённый массив | $pivotWhereIns | Любые ограничения промежуточной таблицы для условий whereIn. | |
| защищённый массив | $pivotWhereNulls | Любые ограничения промежуточной таблицы для условий whereNull. | |
| защищённый массив | $pivotValues | Значения по умолчанию для столбцов pivot. | |
| bool | $withTimestamps | Указывает, доступны ли метки времени в pivot таблице. | |
| защищённый string | $pivotCreatedAt | Настраиваемый столбец pivot таблицы для метки времени created_at. | |
| защищённый string | $pivotUpdatedAt | Настраиваемый столбец pivot таблицы для метки времени updated_at. | |
| защищённый string | $using | Имя класса пользовательской pivot модели для использования в отношении. | |
| защищённый string | $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)
Создать новый экземпляр отношения "принадлежит ко многим". | |
| 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 = ['*'])
Выполнить запрос как оператор "select". | |
| 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 |
| Builder | toBase()
Получить базовый экземпляр построителя запросов. | from Relation |
| Model | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа для отношения. |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца "создано в". | |
| строка | updatedAt()
Получить имя столбца "обновлено в". | |
| строка | relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода "where in" для ленивой загрузки. | из Отношения |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| статический массив | enforceMorphMap(массив $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели, преобразованные в морфы, были явно сопоставлены. | из Отношения |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создает таблично-ключевой массив из имен классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Принудительно клонировать базовый генератор запросов при клонировании. | из Отношения |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — преобразовав его в строку, если это необходимо. | из InteractsWithDictionary |
| массив | toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) из родительской модели. | из InteractsWithPivotTable |
| массив | syncWithoutDetaching(Коллекция|Модель|массив $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без отсоединения. | из InteractsWithPivotTable |
| массив | sync(Коллекция|Модель|массив $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей. | из InteractsWithPivotTable |
| массив | syncWithPivotValues(Коллекция|Модель|массив $ids, массив $values, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей с заданными значениями свопки. | из InteractsWithPivotTable |
| массив | formatRecordsList(массив $records)
Форматирует список записей синхронизации/переключения, чтобы он индексировался по идентификатору. | из InteractsWithPivotTable |
| массив | attachNew(массив $records, массив $current, bool $touch = true)
Присоединяет все записи, которых нет в заданных текущих записях. | из InteractsWithPivotTable |
| целое число | updateExistingPivot(mixed $id, массив $attributes, bool $touch = true)
Обновить существующую запись свопки в таблице. | из InteractsWithPivotTable |
| целое число | updateExistingPivotUsingCustomClass(mixed $id, массив $attributes, bool $touch)
Обновить существующую запись свопки в таблице с помощью пользовательского класса. | из InteractsWithPivotTable |
| void | attach(mixed $id, массив $attributes = [], bool $touch = true)
Присоединить модель к родительской. | из InteractsWithPivotTable |
| void | attachUsingCustomClass(mixed $id, массив $attributes)
Присоединить модель к родительской с помощью пользовательского класса. | из InteractsWithPivotTable |
| массив | formatAttachRecords(массив $ids, массив $attributes)
Создать массив записей для вставки в таблицу свопки. | из InteractsWithPivotTable |
| массив | formatAttachRecord(целое число $key, mixed $value, массив $attributes, bool $hasTimestamps)
Создать полный запрос на добавление. | из InteractsWithPivotTable |
| массив | extractAttachIdAndAttributes(mixed $key, mixed $value, массив $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)
Получить новое утверждение привязки для заданного ID. | из InteractsWithPivotTable |
| Builder | newPivotQuery()
Создать новый билдер запросов для таблицы привязки. | из InteractsWithPivotTable |
| $this | withPivot(array|mixed $columns)
Установить столбцы в таблице привязки для извлечения. | из InteractsWithPivotTable |
| array | parseIds(mixed $value)
Получить все ID из заданного смешанного значения. | из InteractsWithPivotTable |
| mixed | parseId(mixed $value)
Получить ID из заданного смешанного значения. | из 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)
Установить условие "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)
Установить условие "or where not between" для столбца таблицы привязки. |
| $this | wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «where in» для столбца таблицы pivot. | |
| $this | orWherePivot(string $column, mixed $operator = null, mixed $value = null)
Установить условие «or where» для столбца таблицы pivot. | |
| $this | withPivotValue(string|array $column, mixed $value = null)
Установить условие where для столбца pivot-таблицы. | |
| $this | orWherePivotIn(string $column, mixed $values)
Установить условие «or where in» для столбца pivot-таблицы. | |
| $this | wherePivotNotIn(string $column, mixed $values, string $boolean = 'and')
Установить условие «where not in» для столбца таблицы pivot. | |
| $this | orWherePivotNotIn(string $column, mixed $values)
Установить условие «or where not in» для столбца pivot-таблицы. | |
| $this | wherePivotNull(string $column, string $boolean = 'and', bool $not = false)
Установить условие «where null» для столбца pivot-таблицы. | |
| $this | wherePivotNotNull(string $column, string $boolean = 'and')
Установить условие «where not null» для столбца pivot-таблицы. | |
| $this | orWherePivotNull(string $column, bool $not = false)
Установить условие «or where null» для столбца pivot-таблицы. | |
| $this | orWherePivotNotNull(string $column)
Установить условие «or where not null» для столбца pivot-таблицы. | |
| $this | orderByPivot(string $column, string $direction = 'asc')
Добавить условие «order by» для столбца pivot-таблицы. | |
| Collection|Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели. | |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | |
| Модель | firstOrCreate(array $attributes = [], array $values = [], 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 = ['*'])
Найти связанную модель по её первичному ключу, или выбросить исключение. | |
| Модель|Коллекция|mixed | findOr(mixed $id, Closure|array $columns = ['*'], Closure $callback = null)
Найти связанную модель по её первичному ключу или выполнить обратный вызов. | |
| Модель|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 = ['*'])
Получить столбцы для выбора в запросе связи. | |
| array | aliasedPivotColumns()
Получить столбцы pivot-связи. | |
| 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 $model)
Получить атрибуты связи из модели. | |
| void | touchIfTouching()
Если нужно обновить родительскую модель, выполнить обновление. | |
| bool | touchingParent()
Определить, нужно ли обновлять родительскую модель при синхронизации. | |
| string | guessInverseRelation()
Попытаться определить имя обратного отношения. | |
| Collection | allRelatedIds()
Получить все идентификаторы связанных моделей. | |
| Model | save(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и прикрепить ее к родительской модели. | |
| Model | saveQuietly(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель без срабатывания событий и прикрепить ее к родительской модели. | |
| array | saveMany(Collection|array $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели. | |
| array | saveManyQuietly(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)
Выбросить исключение BadMethodCallException для данного метода.
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)
Динамически обработать вызовы класса.
mixed __call(string $method, array $parameters)
Динамически обработать вызовы класса.
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)
Выполнить обратный вызов без ограничений для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Установить ограничения для жадного загрузки отношения.
array initRelation(array $models, string $relation)
Инициализировать отношение на наборе моделей.
array match(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их родителями.
mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для жадной загрузки.
Model sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию «select».
void touch()
Обновить все связанные модели для отношения.
Например: Обновить все роли, связанные с этим пользователем.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для базового запроса.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования отношения.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы объединения отношений.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить объект-билдер запроса, который будет содержать ограничения отношения.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Builder toBase()
Получить экземпляр базового билдера запроса.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа для отношения.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
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)
Определить сопоставление морфий для полиморфных отношений и потребовать, чтобы все модели morphed были явно отображены.
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(Collection|Model|array $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без открепления.
array sync(Collection|Model|array $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей.
array syncWithPivotValues(Collection|Model|array $ids, array $values, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей с заданными значениями связующей таблицы.
protected array formatRecordsList(array $records)
Форматирует список записей синхронизации/переключения, чтобы он индексировался по ID.
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)
Получает ID записи присоединения и дополнительные атрибуты.
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()
Получить модели связей, которые в настоящее время присоединены.
Pivot newPivot(array $attributes = [], bool $exists = false)
Создать новый экземпляр модели связей.
Pivot newExistingPivot(array $attributes = [])
Создать новый существующий экземпляр модели связей.
Builder newPivotStatement()
Получить новый простой билдер запросов для таблицы связей.
Builder newPivotStatementForId(mixed $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 для столбца таблицы pivot.
$this wherePivotBetween(string $column, array $values, string $boolean = 'and', bool $not = false)
Установите условие «where between» для столбца таблицы pivot.
$this orWherePivotBetween(string $column, array $values)
Установите условие «or where between» для столбца таблицы pivot.
$this wherePivotNotBetween(string $column, array $values, string $boolean = 'and')
Установите условие «where pivot not between» для столбца таблицы pivot.
$this orWherePivotNotBetween(string $column, array $values)
Установите условие «or where not between» для столбца таблицы pivot.
$this wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установите условие «where in» для столбца таблицы pivot.
$this orWherePivot(string $column, mixed $operator = null, mixed $value = null)
Установите условие «or where» для столбца таблицы pivot.
$this withPivotValue(string|array $column, mixed $value = null)
Установите условие where для столбца таблицы pivot.
Кроме того, новые записи pivot будут получать это значение.
$this orWherePivotIn(string $column, mixed $values)
Установите условие «or where in» для столбца таблицы pivot.
$this wherePivotNotIn(string $column, mixed $values, string $boolean = 'and')
Установите условие «where not in» для столбца таблицы pivot.
$this orWherePivotNotIn(string $column, mixed $values)
Установите условие «or where not in» для столбца таблицы pivot.
$this wherePivotNull(string $column, string $boolean = 'and', bool $not = false)
Установите условие «where null» для столбца таблицы pivot.
$this wherePivotNotNull(string $column, string $boolean = 'and')
Установите условие «where not null» для столбца таблицы pivot.
$this orWherePivotNull(string $column, bool $not = false)
Установите условие «or where null» для столбца таблицы pivot.
$this orWherePivotNotNull(string $column)
Установите условие «or where not null» для столбца таблицы pivot.
$this orderByPivot(string $column, string $direction = 'asc')
Добавьте условие «order by» для столбца таблицы pivot.
Collection|Модель findOrNew(mixed $id, array $columns = ['*'])
Найдите связанную модель по её первичному ключу или верните новый экземпляр связанной модели.
Модель firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её.
Модель firstOrCreate(array $attributes = [], array $values = [], 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 = ['*'])
Найти связанную модель по её первичному ключу, или выбросить исключение.
Модель|Коллекция|смешанный findOr(mixed $id, Closure|массив $columns = ['*'], Closure $callback = null)
Найти связанную модель по её первичному ключу или вызвать обратный вызов.
Модель|BelongsToMany firstWhere(Closure|строка|массив $column, mixed $operator = null, mixed $value = null, строка $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат.
смешанный first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|BelongsToMany|смешанный firstOr(Closure|массив $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов.
protected массив shouldSelect(array $columns = ['*'])
Получить столбцы для выбора в запросе отношения.
protected массив aliasedPivotColumns()
Получить столбцы pivot для отношения.
"pivot_" добавляется в префикс каждого столбца для лёгкого удаления позже.
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()
Получить ленивую коллекцию для данного запроса.
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)
Сохранить новую модель и прикрепить ее к родительской модели.
Модель saveQuietly(Модель $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель без поднятия событий и прикрепить её к родительской модели.
массив saveMany(Коллекция|массив $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели.
массив saveManyQuietly(Коллекция|массив $models, array $pivotAttributes = [])
Сохранить массив новых моделей без поднятия событий и прикрепить их к родительской модели.
Модель create(array $attributes = [], array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели.
массив createMany(iterable $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей.
Билдер getRelationExistenceQueryForSelfJoin(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на одной таблице.
строка getExistenceCompareKey()
Получить ключ для сравнения с ключом родителя в запросе "has".
$this withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)
Указать, что сводная таблица имеет метки времени создания и обновления.
строка getForeignPivotKeyName()
Получить внешний ключ для отношения.
строка getQualifiedForeignPivotKeyName()
Получить полностью квалифицированный внешний ключ для отношения.
строка getRelatedPivotKeyName()
Получить "связанный ключ" для отношения.
строка getQualifiedRelatedPivotKeyName()
Получить полностью квалифицированный "связанный ключ" для отношения.
строка getParentKeyName()
Получить родительский ключ для отношения.
строка getRelatedKeyName()
Получить связанный ключ для отношения.
строка getQualifiedRelatedKeyName()
Получить полностью квалифицированное имя связанного ключа для отношения.
строка getTable()
Получить промежуточную таблицу для отношения.
строка getRelationName()
Получить имя отношения для отношения.
строка getPivotAccessor()
Получить имя доступа к сводной таблице для этого отношения.
массив getPivotColumns()
Получить столбцы сводной таблицы для этого отношения.
строка qualifyPivotColumn(строка $column)
Указать имя заданного столбца по промежуточной таблице.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/9.x/Illuminate/Database/Eloquent/Relations/BelongsToMany.html