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