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