BelongsToMany
class BelongsToMany extends Relation (View source)
Свойства
| InteractsWithDictionary | |
| InteractsWithPivotTable | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected TRelatedModel> | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| protected TDeclaringModel | $parent | Экземпляр родительской модели. | из Relation |
| protected TRelatedModel | $related | Экземпляр связанной модели. | из Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцией. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имен классов с их именами морф-связей в базе данных. | из Relation |
| static protected bool | $requireMorphMap | Препятствует морф-связям без морф-карты. | из Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | из Relation |
| protected string | $table | Промежуточная таблица для связи. | |
| protected string | $foreignPivotKey | Внешний ключ родительской модели. | |
| protected string | $relatedPivotKey | Связанный ключ связи. | |
| protected string | $parentKey | Имя ключа родительской модели. | |
| protected string | $relatedKey | Имя ключа связанной модели. | |
| protected string | $relationName | «Имя» связи. | |
| protected (string|Expression)[] | $pivotColumns | Столбцы промежуточной таблицы для извлечения. | |
| protected array | $pivotWheres | Любые ограничения промежуточной таблицы для операторов where. | |
| protected array | $pivotWhereIns | Любые ограничения промежуточной таблицы для операторов whereIn. | |
| protected array | $pivotWhereNulls | Любые ограничения промежуточной таблицы для операторов whereNull. | |
| protected array | $pivotValues | Значения по умолчанию для столбцов промежуточной таблицы. | |
| bool | $withTimestamps | Указывает, доступны ли метки времени в промежуточной таблице. | |
| protected string | $pivotCreatedAt | Пользовательский столбец промежуточной таблицы для метки времени created_at. | |
| protected string | $pivotUpdatedAt | Пользовательский столбец промежуточной таблицы для метки времени updated_at. | |
| protected string | $using | Имя класса пользовательской модели pivot для использования в связи. | |
| protected string | $accessor | Имя аксессора для использования в связи «pivot». |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, возвращая $this, если переданный вызов вернул себя. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для данного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | из Macroable |
| static void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обрабатывать вызовы класса. | из Macroable |
| void | __construct(Builder $query, Model $parent, string|TRelatedModel> $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)
Создать новый экземпляр отношения belongs to many. | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями на отношении. | из Relation |
| void | addConstraints()
Установить базовые ограничения на отношении. | |
| void | addEagerConstraints(array $models) Без описания | |
| TDeclaringModel> | initRelation(array $models, string $relation) Без описания | |
| TDeclaringModel> | match(array $models, Collection $results, string $relation) Без описания | |
| TResult | getResults() Без описания | |
| TRelatedModel> | getEager()
Получить отношение для ленивой загрузки. | из Relation |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | из Relation |
| TRelatedModel> | get(array $columns = ['*']) Без описания | |
| void | touch()
Обновить все связанные модели для отношения. | |
| int | rawUpdate(array $attributes = [])
Выполнить необработанное обновление по основному запросу. | из Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношения. | из Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Без описания | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения. | из Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| TRelatedModel> | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения. | из Relation |
| TRelatedModel> | getQuery()
Получить базовый конструктор запроса для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | из Relation |
| Builder | toBase()
Получить экземпляр базового конструктора запроса. | из Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName()
Получить полное имя родительского ключа для отношения. | |
| TRelatedModel | getRelated()
Получить связанную модель отношения. | из Relation |
| string | createdAt()
Получить имя столбца "создано в". | |
| string | updatedAt()
Получить имя столбца "обновлено в". | |
| string | relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели. | из Relation |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для eager загрузки заданного набора ключей модели. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager загрузки. | из 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|null $map = null, bool $merge = true)
Установить или получить морф-сопоставление для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array|null $models = null)
Создаёт таблично-ключевой массив из имён классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | из Relation |
| static int|string | getMorphAlias(string $className)
Получить псевдоним, связанный с настраиваемым полиморфным классом. | из Relation |
| void | __clone()
Вызвать копирование базового билдера запроса при клонировании. | из Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря - при необходимости преобразовав его в строку. | из InteractsWithDictionary |
| array | toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) из родительской. | из InteractsWithPivotTable |
| syncWithoutDetaching(Collection|Model|array $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без открепления. | из InteractsWithPivotTable | |
| sync(Collection|Model|array $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или набором моделей. | из InteractsWithPivotTable | |
| 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 |
| массив | extractAttachIdAndAttributes(mixed $key, mixed $value, array $attributes)
Получить идентификатор записи прикрепления и дополнительные атрибуты. | из InteractsWithPivotTable |
| массив | baseAttachRecord(int $id, bool $timed)
Создать новую запись прикрепления к связующей таблице. | из InteractsWithPivotTable |
| массив | 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 |
| Коллекция | getCurrentlyAttachedPivots()
Получить модели связующей таблицы, которые в настоящее время присоединены. | из InteractsWithPivotTable |
| Связующая таблица | newPivot(array $attributes = [], bool $exists = false)
Создать новый экземпляр модели связующей таблицы. | из InteractsWithPivotTable |
| Связующая таблица | newExistingPivot(array $attributes = [])
Создать новый существующий экземпляр модели связующей таблицы. | из InteractsWithPivotTable |
| Построитель запроса | newPivotStatement()
Получить новый обычный построитель запросов для связующей таблицы. | из InteractsWithPivotTable |
| Построитель запроса | newPivotStatementForId(mixed $id)
Получить новый запрос для связующей таблицы для данного идентификатора. | из InteractsWithPivotTable |
| Построитель запроса | newPivotQuery()
Создать новый построитель запросов для связующей таблицы. | из InteractsWithPivotTable |
| $this | withPivot(array|mixed $columns)
Указать столбцы в связующей таблице для извлечения. | из InteractsWithPivotTable |
| массив | parseIds(mixed $value)
Получить все идентификаторы из данного значения. | из InteractsWithPivotTable |
| смешанное | parseId(mixed $value)
Получить идентификатор из данного значения. | из InteractsWithPivotTable |
| массив | castKeys(array $keys)
Преобразовать заданные ключи к целым числам, если они числовые, и к строкам в противном случае. | из InteractsWithPivotTable |
| смешанное | castKey(mixed $key)
Преобразовать заданный ключ в тип первичного ключа. | из InteractsWithPivotTable |
| массив | castAttributes(array $attributes)
Преобразовать заданные атрибуты связующей таблицы. | из InteractsWithPivotTable |
| смешанное | getTypeSwapValue(string $type, mixed $value)
Преобразует данное значение в указанный тип значения. | из InteractsWithPivotTable |
| строка | resolveTableName(string $table)
Попытка разрешить имя промежуточной таблицы из заданной строки. | |
| $this | performJoin(TRelatedModel>|null $query = null)
Установить условие объединения для запроса отношения. | |
| $this | addWhereConstraints()
Установить условие where для запроса отношения. | |
| TRelatedModel>[] | buildDictionary(Коллекция $results)
Построить словарь модели, индексированный по внешнему ключу отношения. | |
| строка | 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|Expression $column, array $values, string $boolean = 'and')
Установить условие «where pivot not between» для столбца связанной таблицы. | |
| $this | orWherePivotNotBetween(string|Expression $column, array $values)
Установить условие «or where not between» для столбца связанной таблицы. | |
| $this | wherePivotIn(string|Expression $column, mixed $values, string $boolean = 'and', bool $not = false)
Установить условие «where in» для столбца связанной таблицы. | |
| $this | orWherePivot(string|Expression $column, mixed $operator = null, mixed $value = null)
Установить условие «or where» для столбца связанной таблицы. | |
| $this | withPivotValue(string|Expression|array<string,string> $column, mixed $value = null)
Установить условие «where» для столбца связанной таблицы. | |
| $this | orWherePivotIn(string $column, mixed $values)
Установить условие «or where in» для столбца связанной таблицы. | |
| $this | wherePivotNotIn(string|Expression $column, mixed $values, string $boolean = 'and')
Установить условие «where not in» для столбца связанной таблицы. | |
| $this | orWherePivotNotIn(string $column, mixed $values)
Установить условие «or where not in» для столбца связанной таблицы. | |
| $this | wherePivotNull(string|Expression $column, string $boolean = 'and', bool $not = false)
Установить условие «where null» для столбца связанной таблицы. | |
| $this | wherePivotNotNull(string|Expression $column, string $boolean = 'and')
Установить условие «where not null» для столбца связанной таблицы. | |
| $this | orWherePivotNull(string|Expression $column, bool $not = false)
Установить условие «or where null» для столбца связанной таблицы. | |
| $this | orWherePivotNotNull(string|Expression $column)
Установить условие «or where not null» для столбца связанной таблицы. | |
| $this | orderByPivot(string|Expression $column, string $direction = 'asc')
Добавить условие «order by» для столбца связанной таблицы. | |
| findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели. | ||
| TRelatedModel | firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать её новый экземпляр. | |
| TRelatedModel | firstOrCreate(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | |
| TRelatedModel | createOrFirst(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Попытка создать запись. Если возникает нарушение уникального ограничения, попытка найти соответствующую запись. | |
| TRelatedModel | updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу. | ||
| TRelatedModel> | findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам. | |
| findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение. | ||
| findOr($id, $columns = ['*'], Closure|null $callback = null) Без описания | ||
| TRelatedModel|null | firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат. | |
| TRelatedModel|null | first(array $columns = ['*'])
Выполнить запрос и получить первый результат. | |
| TRelatedModel | firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение. | |
| firstOr($columns = ['*'], Closure|null $callback = null) Без описания | ||
| array | shouldSelect(array $columns = ['*'])
Получить столбцы для выбора в запросе отношения. | |
| 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 | 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)
Выполнить обратный вызов для каждого элемента, разбивая по идентификатору. | |
| bool | orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, bool $descending = false)
Разбить результаты запроса по идентификаторам в заданном порядке. | |
| bool | each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента, разбивая на блоки. | |
| TRelatedModel> | lazy(int $chunkSize = 1000)
Ленивое выполнение запроса, по блокам заданного размера. | |
| TRelatedModel> | lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивое выполнение запроса, разбивая результаты по идентификаторам. | |
| TRelatedModel> | lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивое выполнение запроса, разбивая результаты по идентификаторам в порядке убывания. | |
| TRelatedModel> | cursor()
Получить ленивую коллекцию для данного запроса. | |
| TRelatedModel> | prepareQueryBuilder()
Подготовить билдер запроса для выполнения. | |
| void | hydratePivotRelation(array $models)
Гидратировать отношение с помощью вспомогательной таблицы. | |
| array | migratePivotAttributes(Model $model)
Получить атрибуты вспомогательной таблицы из модели. | |
| void | touchIfTouching()
Если нужно обновить метку времени родительской модели, обновить. | |
| bool | touchingParent()
Определить, нужно ли обновлять метку времени родительской модели при синхронизации. | |
| string | guessInverseRelation()
Попытка угадать имя обратного отношения. | |
| Collection<int,int|string> | allRelatedIds()
Получить все идентификаторы связанных моделей. | |
| TRelatedModel | save(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и привязать её к родительской модели. | |
| TRelatedModel | saveQuietly(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель без срабатывания событий и привязать её к родительской модели. | |
| TContainer | saveMany(TContainer $models, array $pivotAttributes = [])
Сохранить массив новых моделей и привязать их к родительской модели. | |
| TContainer | saveManyQuietly(TContainer $models, array $pivotAttributes = [])
Сохранить массив новых моделей без срабатывания событий и привязать их к родительской модели. | |
| TRelatedModel | create(array $attributes = [], array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели. | |
| TRelatedModel> | createMany(iterable $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей. | |
| TRelatedModel> | getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса к отношениям на том же таблице. | |
| $this | take(int $value)
Псевдоним для установки значения «лимит» запроса. | |
| $this | limit(int $value)
Установить значение «лимит» запроса. | |
| 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|Expression | qualifyPivotColumn(string|Expression $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)
Динамически обработать вызовы к классу.
mixed __call(string $method, array $parameters)
Динамически обработать вызовы к классу.
void __construct(Builder $query, Model $parent, string|TRelatedModel> $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)
Создать новый экземпляр взаимосвязи принадлежности ко многим.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Без описания
TDeclaringModel> initRelation(array $models, string $relation)
Без описания
TDeclaringModel> match(array $models, Collection $results, string $relation)
Без описания
TResult getResults()
Без описания
TRelatedModel> getEager()
Получить отношение для ленивой загрузки.
TRelatedModel sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
TRelatedModel> get(array $columns = ['*'])
Без описания
void touch()
Отобразить все связанные модели для отношения.
Например: Отобразить все роли, связанные с этим пользователем.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для базового запроса.
TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношений.
TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Без описания
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы объединения для отношения.
protected array<int,int|string> getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected TRelatedModel> getRelationQuery()
Получить билдер запроса, который будет содержать ограничения отношения.
TRelatedModel> getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Builder toBase()
Получить экземпляр базового билдера запроса.
TDeclaringModel getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа для отношения.
TRelatedModel getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для загрузки с помощью eager loading.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставлений моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить морф-схему для полиморфных отношений и потребовать явного сопоставления всех моделей, используемых в полиморфных отношениях.
static array morphMap(array|null $map = null, bool $merge = true)
Установить или получить морф-схему для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array|null $models = null)
Строит массив с ключами-таблицами из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
static int|string getMorphAlias(string $className)
Получить псевдоним, связанный с пользовательским полиморфным классом.
void __clone()
Принудительно клонировать базовый билдер запросов при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — привести его к строке, если необходимо.
array toggle(mixed $ids, bool $touch = true)
Переключает модель (или модели) из родительской.
Каждая существующая модель отделяется, а несуществующие присоединяются.
syncWithoutDetaching(Collection|Model|array $ids)
Синхронизирует промежуточные таблицы со списком идентификаторов без отсоединения.
sync(Collection|Model|array $ids, bool $detaching = true)
Синхронизирует промежуточные таблицы со списком идентификаторов или коллекцией моделей.
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)
Получает идентификатор присоединяемой записи и дополнительные атрибуты.
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)
Получить новый запрос для связующей таблицы для заданного 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(TRelatedModel>|null $query = null)
Установить предложение объединения для запроса отношения.
protected $this addWhereConstraints()
Установить предложение where для запроса отношения.
protected TRelatedModel>[] buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу связи.
string getPivotClass()
Получить класс, используемый для моделей связей.
$this using(string $class)
Указать пользовательскую модель связи для использования.
$this as(string $accessor)
Указать пользовательский аксессор связи для использования.
$this wherePivot(string|Expression $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Установить условие where для столбца таблицы связей.
$this wherePivotBetween(string|Expression $column, array $values, string $boolean = 'and', bool $not = false)
Установить условие «where between» для столбца таблицы связей.
$this orWherePivotBetween(string|Expression $column, array $values)
Установить условие «or where between» для столбца таблицы связей.
$this wherePivotNotBetween(string|Expression $column, array $values, string $boolean = 'and')
Установить условие «where pivot not between» для столбца таблицы связей.
$this orWherePivotNotBetween(string|Expression $column, array $values)
Установите условие «или не между» для столбца таблицы связей.
$this wherePivotIn(string|Expression $column, mixed $values, string $boolean = 'and', bool $not = false)
Установите условие «где в» для столбца таблицы связей.
$this orWherePivot(string|Expression $column, mixed $operator = null, mixed $value = null)
Установите условие «или где» для столбца таблицы связей.
$this withPivotValue(string|Expression|array<string,string> $column, mixed $value = null)
Установите условие «где» для столбца таблицы связей.
Кроме того, новые записи связей получат это значение.
$this orWherePivotIn(string $column, mixed $values)
Установите условие «или где в» для столбца таблицы связей.
$this wherePivotNotIn(string|Expression $column, mixed $values, string $boolean = 'and')
Установите условие «где не в» для столбца таблицы связей.
$this orWherePivotNotIn(string $column, mixed $values)
Установите условие «или где не в» для столбца таблицы связей.
$this wherePivotNull(string|Expression $column, string $boolean = 'and', bool $not = false)
Установить условие «where null» для столбца таблицы связи.
$this wherePivotNotNull(string|Expression $column, string $boolean = 'and')
Установить условие «where not null» для столбца таблицы связи.
$this orWherePivotNull(string|Expression $column, bool $not = false)
Установить условие «or where null» для столбца таблицы связи.
$this orWherePivotNotNull(string|Expression $column)
Установить условие «or where not null» для столбца таблицы связи.
$this orderByPivot(string|Expression $column, string $direction = 'asc')
Добавить условие «order by» для столбца таблицы связи.
findOrNew(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или вернуть новую модель.
TRelatedModel firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать новую.
TRelatedModel firstOrCreate(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Получить первую модель, соответствующую атрибутам. Если запись не найдена, создать её.
TRelatedModel createOrFirst(array $attributes = [], array $values = [], array $joining = [], bool $touch = true)
Попытка создать запись. Если произойдёт нарушение уникальности, попытаться найти соответствующую запись.
TRelatedModel updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
TRelatedModel> findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
findOr($id, $columns = ['*'], Closure|null $callback = null)
Без описания
TRelatedModel|null firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат.
TRelatedModel|null first(array $columns = ['*'])
Выполнить запрос и получить первый результат.
TRelatedModel firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
firstOr($columns = ['*'], Closure|null $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)
Разбить результаты запроса на куски по числовым идентификаторам.
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)
Применить обратный вызов к каждому элементу, разбивая по идентификаторам.
bool orderedChunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null, bool $descending = false)
Разбить результаты запроса на куски по идентификаторам в заданном порядке.
bool each(callable $callback, int $count = 1000)
Применить обратный вызов к каждому элементу, разбивая на куски.
TRelatedModel> lazy(int $chunkSize = 1000)
Ленивое выполнение запроса, кусками заданного размера.
TRelatedModel> lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивое выполнение запроса, разбивая результаты по числовым идентификаторам.
TRelatedModel> lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивое выполнение запроса, разбивая результаты по идентификаторам в порядке убывания.
TRelatedModel> cursor()
Получить ленивую коллекцию для данного запроса.
protected TRelatedModel> prepareQueryBuilder()
Подготовьте билдер запроса для выполнения запроса.
protected void hydratePivotRelation(array $models)
Гидратировать отношение таблицы связей для моделей.
protected array migratePivotAttributes(Model $model)
Получить атрибуты связи из модели.
void touchIfTouching()
Если мы касаемся родительской модели, коснуться её.
protected bool touchingParent()
Определить, нужно ли коснуться родительской модели при синхронизации.
protected string guessInverseRelation()
Попытка угадать имя обратного отношения.
Collection<int,int|string> allRelatedIds()
Получить все идентификаторы связанных моделей.
TRelatedModel save(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель и прикрепить её к родительской модели.
TRelatedModel saveQuietly(Model $model, array $pivotAttributes = [], bool $touch = true)
Сохранить новую модель без срабатывания событий и прикрепить её к родительской модели.
TContainer saveMany(TContainer $models, array $pivotAttributes = [])
Сохранить массив новых моделей и прикрепить их к родительской модели.
TContainer saveManyQuietly(TContainer $models, array $pivotAttributes = [])
Сохранить массив новых моделей без срабатывания событий и прикрепить их к родительской модели.
TRelatedModel create(array $attributes = [], array $joining = [], bool $touch = true)
Создать новый экземпляр связанной модели.
TRelatedModel> createMany(iterable $records, array $joinings = [])
Создать массив новых экземпляров связанных моделей.
TRelatedModel> getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения к той же таблице.
$this take(int $value)
Псевдоним для установки значения "limit" запроса.
$this limit(int $value)
Установить значение "limit" запроса.
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|Expression qualifyPivotColumn(string|Expression $column)
Применить к заданному имени столбца квалификатор из таблицы сводной связи.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/BelongsToMany.html