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