BelongsToMany
класс BelongsToMany расширяет Relation (View source)
Трейты
| InteractsWithDictionary | |
| InteractsWithPivotTable | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| защищенный Model | $parent | Экземпляр родительской модели. | из Relation |
| защищенный Model | $related | Экземпляр связанной модели. | из Relation |
| защищенный bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами morph в базе данных. | из Relation |
| статический защищенный bool | $requireMorphMap | Предотвращает связи morph без карты morph. | из 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|Model> $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()
Получить имя столбца «обновлено в» для связанной модели. | из Отношения |
| пустое значение | whereInEager(строка $whereIn, строка $key, массив $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для загрузки по ленивой загрузке. | из Отношения |
| статический void | requireMorphMap(логический $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический логический | requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление модели. | из Отношения |
| статический массив | enforceMorphMap(массив $map, логический $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать явного сопоставления всех моделированных моделей. | из Отношения |
| статический массив | morphMap(массив $map = null, логический $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | из Отношения |
| пустое значение | __clone()
Вынудить клонирование основного билдера запроса при клонировании. | из Отношения |
| смешанный тип | getDictionaryKey(смешанный тип $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке. | из Взаимодействие со словарем |
| массив | toggle(смешанный тип $ids, логический $touch = true)
Переключает модель (или модели) с родительского элемента. | из Взаимодействие со вспомогательной таблицей |
| массив | syncWithoutDetaching(Коллекция|Модель|массив $ids)
Синхронизировать вспомогательные таблицы со списком идентификаторов без открепления. | из Взаимодействие со вспомогательной таблицей |
| массив | sync(Коллекция|Модель|массив $ids, логический $detaching = true)
Синхронизировать вспомогательные таблицы со списком идентификаторов или коллекцией моделей. | из Взаимодействие со вспомогательной таблицей |
| массив | syncWithPivotValues(Коллекция|Модель|массив $ids, массив $values, логический $detaching = true)
Синхронизировать вспомогательные таблицы со списком идентификаторов или коллекцией моделей с заданными значениями связанной таблицы. | из Взаимодействие со вспомогательной таблицей |
| массив | formatRecordsList(массив $records)
Форматировать список записей синхронизации/переключения, чтобы он был индексирован по ID. | из Взаимодействие со вспомогательной таблицей |
| массив | attachNew(массив $records, массив $current, логический $touch = true)
Прикрепить все записи, которых нет в заданных текущих записях. | из Взаимодействие со вспомогательной таблицей |
| целое число | updateExistingPivot(смешанный тип $id, массив $attributes, логический $touch = true)
Обновить существующую запись связанной таблицы. | из Взаимодействие со вспомогательной таблицей |
| целое число | updateExistingPivotUsingCustomClass(смешанный тип $id, массив $attributes, логический $touch)
Обновить существующую запись связанной таблицы с помощью пользовательского класса. | из Взаимодействие со вспомогательной таблицей |
| пустое значение | attach(смешанный тип $id, массив $attributes = [], логический $touch = true)
Прикрепить модель к родительскому элементу. | из Взаимодействие со вспомогательной таблицей |
| пустое значение | attachUsingCustomClass(смешанный тип $id, массив $attributes)
Прикрепить модель к родительскому элементу с использованием пользовательского класса. | из Взаимодействие со вспомогательной таблицей |
| массив | formatAttachRecords(массив $ids, массив $attributes)
Создать массив записей для вставки в таблицу связанных данных. | из Взаимодействие со вспомогательной таблицей |
| массив | formatAttachRecord(целое число $key, смешанный тип $value, массив $attributes, логический $hasTimestamps)
Создать полную полезную нагрузку записи прикрепления. | из Взаимодействие со вспомогательной таблицей |
| 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)
Получить новый запрос для связующей таблицы для заданного 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)
Установить предложение JOIN для запроса связи. | |
| $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)
Установить условие "или не между" для столбца таблицы связей. | |
| $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)
Установить условие "где null" для столбца таблицы связей. | |
| $this | wherePivotNotNull(string $column, string $boolean = 'and')
Установить условие "где не null" для столбца таблицы связей. | |
| $this | orWherePivotNull(string $column, bool $not = false)
Установить условие "или где null" для столбца таблицы связей. | |
| $this | orWherePivotNotNull(string $column)
Установить условие "или где не null" для столбца таблицы связей. | |
| $this | orderByPivot(string $column, string $direction = 'asc')
Добавить условие "сортировать по" для столбца таблицы связей. | |
| Collection|Модель | findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели. | |
| Модель | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её экземпляр. | |
| Модель | firstOrCreate(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | |
| Модель | createOrFirst(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()
Получить столбцы связей для отношения. | |
| LengthAwarePaginator | paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Получить пагинатор для оператора "выбрать". | |
| 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 | chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски, сравнивая идентификаторы в порядке убывания. |
| bool | eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов над каждым элементом, разделяя по ID. | |
| bool | orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, bool $descending = false)
Разбить результаты запроса на куски, сравнивая ID в заданном порядке. | |
| 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)
Выполнить запрос лениво, разбивая результаты запроса на куски по сравниванию ID. | |
| LazyCollection | lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Выполнить запрос лениво, разбивая результаты запроса на куски по сравниванию ID в порядке убывания. | |
| LazyCollection | cursor()
Получить ленивую коллекцию для заданного запроса. | |
| Builder | prepareQueryBuilder()
Подготовить билдер запроса для выполнения запроса. | |
| void | hydratePivotRelation(array $models)
Гидратировать отношение pivot-таблицы для моделей. | |
| array | migratePivotAttributes(Model $model)
Получить атрибуты pivot-таблицы из модели. | |
| void | touchIfTouching()
Если мы касаемся родительской модели, то коснитесь её. | |
| bool | touchingParent()
Определить, нужно ли коснуться родительской модели при синхронизации. | |
| string | guessInverseRelation()
Попытаться определить имя обратного отношения. | |
| Collection | allRelatedIds()
Получить все ID для связанных моделей. | |
| 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)
Указать, что pivot-таблица имеет метки создания и обновления. | |
| 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-таблице. |
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)
Динамически обрабатывать вызовы класса.
mixed __call(string $method, array $parameters)
Динамически обрабатывать вызовы класса.
void __construct(Builder $query, Model $parent, string|Model> $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 = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Коллекция get(array $columns = ['*'])
Выполнить запрос в качестве оператора «select».
void touch()
Обновить все связанные модели для отношения.
Например: Обновить все роли, связанные с этим пользователем.
int rawUpdate(array $attributes = [])
Выполнить операцию обновления с использованием базового запроса.
Билдер getRelationExistenceCountQuery(Билдер $query, Билдер $parentQuery)
Добавить ограничения для запроса подсчёта существования отношения.
Билдер getRelationExistenceQuery(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения для отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Билдер getRelationQuery()
Получить билдер запроса, который будет содержать ограничения отношения.
Билдер getQuery()
Получить базовый запрос для отношения.
Билдер getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Билдер toBase()
Получить экземпляр базового билдера запроса.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа для отношения.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца «created at».
string updatedAt()
Получить имя столбца «updated at».
string relatedUpdatedAt()
Получить имя столбца «updated at» связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Билдер $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода «where in» для загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Препятствовать использованию полиморфных отношений без сопоставлений моделей.
статическое bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явное сопоставление моделей.
статическое array enforceMorphMap(array $map, bool $merge = true)
Определить карту сопоставления для полиморфных отношений и потребовать, чтобы все модели с морфинг были явно сопоставлены.
статическое array morphMap(array $map = null, bool $merge = true)
Установить или получить карту сопоставления для полиморфных отношений.
статическое защищенное array|null buildMorphMapFromModels(array $models = null)
Создает массив с таблицами в качестве ключей из имен классов моделей.
статическое string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый генератор запросов при клонировании.
защищенное 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)
Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей с заданными значениями связей.
защищенное array formatRecordsList(array $records)
Форматирует список записей для синхронизации/переключения, чтобы он был индексирован по идентификатору.
защищенное array attachNew(array $records, array $current, bool $touch = true)
Присоединяет все записи, которых нет в заданных текущих записях.
int updateExistingPivot(mixed $id, array $attributes, bool $touch = true)
Обновить существующую запись соединения в таблице.
защищенное int updateExistingPivotUsingCustomClass(mixed $id, array $attributes, bool $touch)
Обновить существующую запись соединения в таблице с помощью пользовательского класса.
void attach(mixed $id, array $attributes = [], bool $touch = true)
Присоединить модель к родителю.
защищенное void attachUsingCustomClass(mixed $id, array $attributes)
Присоединить модель к родителю с помощью пользовательского класса.
защищенное 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()
Получить модели связей, которые в настоящее время прикреплены.
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()
Получить класс, используемый для моделей pivot.
$this using(string $class)
Указать пользовательскую модель pivot для использования в отношении.
$this as(string $accessor)
Указать пользовательский аксессор pivot для использования в отношении.
$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 не между» для столбца таблицы сводок.
$this orWherePivotNotBetween(string $column, array $values)
Установить условие «or where не между» для столбца таблицы сводок.
$this wherePivotIn(string $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «where in» для столбца таблицы сводок.
$this orWherePivot(string $column, mixed $operator = null, mixed $value = null)
Установить условие «or where» для столбца таблицы сводок.
$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')
Установить условие «где не пусто» для столбца связанной таблицы.
$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 = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её.
Модель firstOrCreate(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.
Модель createOrFirst(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|array $columns = ['*'], Closure $callback = null)
Найти связанную модель по её первичному ключу или вызвать обратный вызов.
Модель|BelongsToMany firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие «где» к запросу и вернуть первый результат.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
Модель|BelongsToMany firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|BelongsToMany|mixed firstOr(Closure|array $columns = ['*'], Closure $callback = null)
Выполнить запрос и получить первый результат или вызвать обратный вызов.
protected array shouldSelect(array $columns = ['*'])
Получить столбцы выбора для запроса отношения.
protected 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)
Разбить результаты запроса на куски по числовым ID.
bool chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски по ID в порядке убывания.
bool eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов над каждым элементом, разбивая по ID.
bool orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, bool $descending = false)
Разбить результаты запроса на куски по ID в заданном порядке.
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 lazyByIdDesc(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)
Сохранить новую модель и прикрепить ее к родительской модели.
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)
Квалифицировать заданное имя столбца с помощью таблицы связующей таблицы.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Database/Eloquent/Relations/BelongsToMany.html