Spec-Zone.ru › Laravel 5.1

BelongsToMany

class BelongsToMany extends Relation (View source)

Свойства

protected Builder $query Экземпляр билдера запросов Eloquent. из Relation
protected Model $parent Экземпляр родительской модели. из Relation
protected Model $related Экземпляр связанной модели. из Relation
static protected bool $constraints Указывает, добавляет ли отношение ограничения. из Relation
static protected array $morphMap Массив для сопоставления имен классов с их именами морфинга в базе данных. из Relation
protected string $table Промежуточная таблица для отношения.
protected string $foreignKey Внешний ключ родительской модели.
protected string $otherKey Связанный ключ отношения.
protected string $relationName Название отношения.
protected array $pivotColumns Столбцы промежуточной таблицы для извлечения.
protected array $pivotWheres Любые ограничения для промежуточной таблицы.
protected string $pivotCreatedAt Настраиваемый столбец промежуточной таблицы для отметки времени создания.
protected string $pivotUpdatedAt Настраиваемый столбец промежуточной таблицы для отметки времени обновления.

Методы

void __construct(Builder $query, Model $parent, string $table, string $foreignKey, string $otherKey, string $relationName = null)

Создать новый экземпляр отношения belongs to many.

void addConstraints()

Установить базовые ограничения для запроса отношения.

void addEagerConstraints(array $models)

Установить ограничения для отложенной загрузки отношения.

array initRelation(array $models, string $relation)

Инициализировать отношение для набора моделей.

array match(array $models, Collection $results, string $relation)

Сопоставить загруженные результаты с их родителями.

mixed getResults()

Получить результаты отношения.

Collection getEager()

Получить отношение для отложенной загрузки.

from Relation
void touch()

Обновить метки времени всех связанных моделей для отношения.

int rawUpdate(array $attributes = [])

Выполнить необработанное обновление с базовым запросом.

from Relation
Builder getRelationCountQuery(Builder $query, Builder $parent)

Добавить ограничения для запроса подсчета отношения.

static mixed noConstraints(Closure $callback)

Выполнить обратный вызов с отключенными ограничениями для отношения.

from Relation
array getKeys(array $models, string $key = null)

Получить все первичные ключи для массива моделей.

from Relation
Builder getQuery()

Получить базовый запрос для отношения.

from Relation
Builder getBaseQuery()

Получить базовый билдер запросов, управляющий билдером Eloquent.

from Relation
Model getParent()

Получить родительскую модель отношения.

from Relation
string getQualifiedParentKeyName()

Получить полностью квалифицированное имя родительского ключа.

from Relation
Model getRelated()

Получить связанную модель отношения.

from Relation
string createdAt()

Получить имя столбца «создано в».

string updatedAt()

Получить имя столбца «обновлено в».

string relatedUpdatedAt()

Получить имя столбца «обновлено в» связанной модели.

from Relation
string wrap(string $value)

Оборачивает заданное значение с использованием грамматики родительского запроса.

from Relation
static array morphMap(array $map = null, bool $merge = true)

Установить или получить карту морфизма для полиморфных отношений.

from Relation
static array|null buildMorphMapFromModels(array $models = null)

Создаёт таблично-основанный массив из имён классов моделей.

from Relation
mixed __call(string $method, array $parameters)

Обрабатывает динамические вызовы методов для отношения.

from Relation
void __clone()

Вынуждает клонирование базового билдера запросов при клонировании.

from Relation
BelongsToMany wherePivot(string $column, string $operator = null, mixed $value = null, string $boolean = 'and')

Устанавливает условие where для столбца таблицы связей.

BelongsToMany orWherePivot(string $column, string $operator = null, mixed $value = null)

Устанавливает условие or where для столбца таблицы связей.

mixed first(array $columns = ['*'])

Выполнить запрос и получить первый результат.

Model|BelongsToMany firstOrFail(array $columns = ['*'])

Выполнить запрос и получить первый результат или выбросить исключение.

Collection get(array $columns = ['*'])

Выполнить запрос в качестве оператора «выбрать».

LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Получить пагинатор для оператора «выбрать».

Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page')

Разбить на страницы заданный запрос с помощью простого пагинатора.

bool chunk(int $count, callable $callback)

Разбить результаты запроса на куски.

void hydratePivotRelation(array $models)

Гидратировать отношение таблицы связей для моделей.

array cleanPivotAttributes(Model $model)

Получение атрибутов связи из модели.

Builder getRelationCountQueryForSelfJoin(Builder $query, Builder $parent)

Добавление ограничений для запроса подсчета отношений в той же таблице.

string getRelationCountHash()

Получение хэша таблицы соединения отношений.

BelongsToMany getSelectColumns(array $columns = ['*'])

Установка предложения SELECT для запроса отношения.

array getAliasedPivotColumns()

Получение столбцов связи для отношения.

bool hasPivotColumn(string $column)

Определение, определен ли данный столбец как столбец связи.

$this setJoin(Builder|null $query = null)

Установка предложения JOIN для запроса отношения.

$this setWhere()

Установка предложения WHERE для запроса отношения.

array buildDictionary(Collection $results)

Создание словаря моделей с ключом, основанным на внешнем ключе отношения.

Collection getRelatedIds()

Получение всех ID для связанных моделей.

Model save(Model $model, array $joining = [], bool $touch = true)

Сохранение новой модели и ее присоединение к родительской модели.

array saveMany(Collection|array $models, array $joinings = [])

Сохранение массива новых моделей и их присоединение к родительской модели.

Model|Collection|null find(mixed $id, array $columns = ['*'])

Поиск связанной модели по ее первичному ключу.

Collection findMany(mixed $ids, array $columns = ['*'])

Поиск нескольких связанных моделей по их первичным ключам.

Model|Collection findOrFail(mixed $id, array $columns = ['*'])

Поиск связанной модели по ее первичному ключу или генерация исключения.

Collection|Model findOrNew(mixed $id, array $columns = ['*'])

Поиск связанной модели по ее первичному ключу или возвращение нового экземпляра связанной модели.

Model firstOrNew(array $attributes)

Получение первой записи связанной модели, соответствующей атрибутам, или создание новой.

Model firstOrCreate(array $attributes, array $joining = [], bool $touch = true)

Получение первой связанной записи, соответствующей атрибутам, или создание новой.

Model updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)

Создание или обновление связанной записи, соответствующей атрибутам, и заполнение ее значениями.

Model create(array $attributes, array $joining = [], bool $touch = true)

Создание нового экземпляра связанной модели.

array createMany(array $records, array $joinings = [])

Создание массива новых экземпляров связанных моделей.

array sync(Collection|array $ids, bool $detaching = true)

Синхронизация промежуточных таблиц со списком ID или коллекцией моделей.

array formatSyncList(array $records)

Форматирование списка синхронизации так, чтобы он имел ключи по ID.

array attachNew(array $records, array $current, bool $touch = true)

Присоединение всех ID, которых нет в текущем массиве.

int updateExistingPivot(mixed $id, array $attributes, bool $touch = true)

Обновление существующей записи связи в таблице.

void attach(mixed $id, array $attributes = [], bool $touch = true)

Присоединение модели к родителю.

array createAttachRecords(array $ids, array $attributes)

Создание массива записей для вставки в таблицу связи.

array attacher(int $key, mixed $value, array $attributes, bool $timed)

Создание полной полезной нагрузки записи присоединения.

array getAttachId(mixed $key, mixed $value, array $attributes)

Получение ID записи присоединения и дополнительных атрибутов.

array createAttachRecord(int $id, bool $timed)

Создание новой записи присоединения связи.

array setTimestampsOnAttach(array $record, bool $exists = false)

Установка меток времени создания и обновления для записи присоединения.

int detach(int|array $ids = [], bool $touch = true)

Отсоединение моделей от отношения.

void touchIfTouching()

Если мы касаемся родительской модели, касаемся.

bool touchingParent()

Определение, следует ли нам касаться родителя при синхронизации.

string guessInverseRelation()

Попытка угадать имя обратного отношения.

Builder newPivotQuery()

Создание нового построителя запросов для таблицы связи.

Builder newPivotStatement()

Получение нового простого построителя запросов для таблицы связи.

Builder newPivotStatementForId(mixed $id)

Получение нового оператора связи для заданного ID "другого".

Связь newPivot(array $attributes = [], bool $exists = false)

Создать новый экземпляр модели связи.

Связь newExistingPivot(array $attributes = [])

Создать новый существующий экземпляр модели связи.

$this withPivot(array|mixed $columns)

Установить столбцы таблицы связи для извлечения.

Связь "многие ко многим" withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)

Указать, что таблица связи содержит метки времени создания и обновления.

строка getRelatedFreshUpdate()

Получить имя столбца "updated_at" связанной модели.

строка getHasCompareKey()

Получить ключ для сравнения со значением родительского ключа в запросе "has".

строка getForeignKey()

Получить полное имя внешнего ключа для связи.

строка getOtherKey()

Получить полное имя "другого ключа" для связи.

строка getTable()

Получить промежуточную таблицу для связи.

строка getRelationName()

Получить имя связи для данной связи.

Подробности

void __construct(Builder $query, Model $parent, string $table, string $foreignKey, string $otherKey, string $relationName = null)

Создать новую связь "многие ко многим".

Параметры

Builder $query
Model $parent
строка $table
строка $foreignKey
строка $otherKey
строка $relationName

Возвращаемое значение

void

void addConstraints()

Установить базовые ограничения для запроса связи.

Возвращаемое значение

void

void addEagerConstraints(array $models)

Установить ограничения для жадного загрузки связи.

Параметры

массив $models

Возвращаемое значение

void

массив initRelation(array $models, string $relation)

Инициализировать связь для набора моделей.

Параметры

массив $models
строка $relation

Возвращаемое значение

массив

массив match(array $models, Collection $results, string $relation)

Сопоставить загруженные с жадной загрузкой результаты с их родителями.

Параметры

массив $models
Collection $results
строка $relation

Возвращаемое значение

массив

mixed getResults()

Получить результаты связи.

Возвращаемое значение

mixed

Collection getEager()

Получить связь для жадной загрузки.

Возвращаемое значение

Collection

void touch()

Обновить метку времени для всех связанных моделей.

Например: Обновить метку времени для всех ролей, связанных с этим пользователем.

Возвращаемое значение

void

int rawUpdate(array $attributes = [])

Выполнить сырое обновление для базового запроса.

Параметры

массив $attributes

Возвращаемое значение

int

Builder getRelationCountQuery(Builder $query, Builder $parent)

Добавить ограничения для запроса подсчета связи.

Параметры

Builder $query
Builder $parent

Возвращаемое значение

Builder

static mixed noConstraints(Closure $callback)

Выполнить коллбэк с отключенными ограничениями для связи.

Параметры

Closure $callback

Возвращаемое значение

mixed

protected массив getKeys(array $models, string $key = null)

Получить все первичные ключи для массива моделей.

Параметры

массив $models
строка $key

Возвращаемое значение

массив

Builder getQuery()

Получить основной запрос для связи.

Возвращаемое значение

Builder

Builder getBaseQuery()

Получить базовый билдер запросов, управляющий билдером Eloquent.

Возвращаемое значение

Builder

Model getParent()

Получить родительскую модель для связи.

Возвращаемое значение

Model

строка getQualifiedParentKeyName()

Получить полное квалифицированное имя родительского ключа.

Значение возврата

строка

Модель getRelated()

Получить связанную модель отношения.

Значение возврата

Модель

строка createdAt()

Получить имя столбца "created at".

Значение возврата

строка

строка updatedAt()

Получить имя столбца "updated at".

Значение возврата

строка

строка relatedUpdatedAt()

Получить имя столбца "updated at" связанной модели.

Значение возврата

строка

строка wrap(строка $value)

Оборачивает заданное значение с помощью грамматики родительского запроса.

Параметры

строка $value

Значение возврата

строка

статический массив morphMap(массив $map = null, bool $merge = true)

Установить или получить карту морфизма для полиморфных отношений.

Параметры

массив $map
bool $merge

Значение возврата

массив

статический защищённый массив|null buildMorphMapFromModels(массив $models = null)

Строит таблично-ключевой массив из имен классов моделей.

Параметры

массив $models

Значение возврата

массив|null

смешанный __call(строка $method, массив $parameters)

Обработка вызовов динамических методов отношения.

Параметры

строка $method
массив $parameters

Значение возврата

смешанный

пустое значение __clone()

Принудительно клонирует подлежащий клон билдера запросов при клонировании.

Значение возврата

пустое значение

BelongsToMany wherePivot(строка $column, строка $operator = null, смешанный $value = null, строка $boolean = 'and')

Установить условие where для столбца таблицы связей.

Параметры

строка $column
строка $operator
смешанный $value
строка $boolean

Значение возврата

BelongsToMany

BelongsToMany orWherePivot(строка $column, строка $operator = null, смешанный $value = null)

Установить условие or where для столбца таблицы связей.

Параметры

строка $column
строка $operator
смешанный $value

Значение возврата

BelongsToMany

смешанный first(массив $columns = ['*'])

Выполнить запрос и получить первый результат.

Параметры

массив $columns

Значение возврата

смешанный

Модель|BelongsToMany firstOrFail(массив $columns = ['*'])

Выполнить запрос и получить первый результат или выбросить исключение.

Параметры

массив $columns

Значение возврата

Модель|BelongsToMany

Исключения

ModelNotFoundException

Коллекция get(массив $columns = ['*'])

Выполнить запрос как операцию "select".

Параметры

массив $columns

Значение возврата

Коллекция

LengthAwarePaginator paginate(целое $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое|null $page = null)

Получить разбиение на страницы для оператора "select".

Параметры

целое $perPage
массив $columns
строка $pageName
целое|null $page

Значение возврата

LengthAwarePaginator

Paginator simplePaginate(целое $perPage = null, массив $columns = ['*'], строка $pageName = 'page')

Разбить на страницы заданный запрос с помощью простого разбиения на страницы.

Параметры

целое $perPage
массив $columns
строка $pageName

Значение возврата

Paginator

логическое значение chunk(целое $count, вызываемый объект $callback)

Разбить результаты запроса на куски.

Параметры

целое $count
вызываемый объект $callback

Значение возврата

логическое значение

защищённый пустое значение hydratePivotRelation(массив $models)

Заполнить отношение таблицы связей в моделях.

Параметры

массив $models

Значение возврата

пустое значение
END_OF_DOCUMENT_MARKER

protected массив cleanPivotAttributes(Модель $model)

Получить атрибуты связи из модели.

Параметры

Модель $model

Значение результата

массив

Билдер getRelationCountQueryForSelfJoin(Билдер $query, Билдер $parent)

Добавить ограничения для запроса подсчета связи на одной и той же таблице.

Параметры

Билдер $query
Билдер $parent

Значение результата

Билдер

строка getRelationCountHash()

Получить хэш таблицы связи.

Значение результата

строка

protected BelongsToMany getSelectColumns(массив $columns = ['*'])

Установить предложение select для запроса связи.

Параметры

массив $columns

Значение результата

BelongsToMany

protected массив getAliasedPivotColumns()

Получить колонки связи для отношения.

Значение результата

массив

protected логическое значение hasPivotColumn(строка $column)

Определить, задана ли указанная колонка как колонка связи.

Параметры

строка $column

Значение результата

логическое значение

protected $this setJoin(Билдер|null $query = null)

Установить предложение join для запроса связи.

Параметры

Билдер|null $query

Значение результата

$this

protected $this setWhere()

Установить предложение where для запроса связи.

Значение результата

$this

protected массив buildDictionary(Коллекция $results)

Собрать словарь моделей, индексированный по внешнему ключу связи.

Параметры

Коллекция $results

Значение результата

массив

Коллекция getRelatedIds()

Получить все ID связанных моделей.

Значение результата

Коллекция

Модель save(Модель $model, массив $joining = [], логическое значение $touch = true)

Сохранить новую модель и присоединить её к родительской модели.

Параметры

Модель $model
массив $joining
логическое значение $touch

Значение результата

Модель

массив saveMany(Коллекция|массив $models, массив $joinings = [])

Сохранить массив новых моделей и присоединить их к родительской модели.

Параметры

Коллекция|массив $models
массив $joinings

Значение результата

массив

Модель|Коллекция|null find(смешанный тип $id, массив $columns = ['*'])

Найти связанную модель по её первичному ключу.

Параметры

смешанный тип $id
массив $columns

Значение результата

Модель|Коллекция|null

Коллекция findMany(смешанный тип $ids, массив $columns = ['*'])

Найти несколько связанных моделей по их первичным ключам.

Параметры

смешанный тип $ids
массив $columns

Значение результата

Коллекция

Модель|Коллекция findOrFail(смешанный тип $id, массив $columns = ['*'])

Найти связанную модель по её первичному ключу или выбросить исключение.

Параметры

смешанный тип $id
массив $columns

Значение результата

Модель|Коллекция

Исключения

ModelNotFoundException

Коллекция|Модель findOrNew(смешанный тип $id, массив $columns = ['*'])

Найти связанную модель по её первичному ключу или вернуть новый экземпляр связанной модели.

Параметры

смешанный тип $id
массив $columns

Значение результата

Коллекция|Модель

Модель firstOrNew(массив $attributes)

Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр.

Параметры

массив $attributes

Значение результата

Модель
END_OF_DOCUMENT_MARKER

Модель firstOrCreate(array $attributes, array $joining = [], bool $touch = true)

Получить первую связанную запись, соответствующую атрибутам, или создать её.

Параметры

array $attributes
array $joining
bool $touch

Значение возврата

Модель

Модель updateOrCreate(array $attributes, array $values = [], array $joining = [], bool $touch = true)

Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.

Параметры

array $attributes
array $values
array $joining
bool $touch

Значение возврата

Модель

Модель create(array $attributes, array $joining = [], bool $touch = true)

Создать новый экземпляр связанной модели.

Параметры

array $attributes
array $joining
bool $touch

Значение возврата

Модель

array createMany(array $records, array $joinings = [])

Создать массив новых экземпляров связанных моделей.

Параметры

array $records
array $joinings

Значение возврата

array

array sync(Коллекция|array $ids, bool $detaching = true)

Синхронизировать промежуточные таблицы со списком идентификаторов или коллекцией моделей.

Параметры

Коллекция|array $ids
bool $detaching

Значение возврата

array

protected array formatSyncList(array $records)

Форматировать список синхронизации таким образом, чтобы он индексировался по идентификатору.

Параметры

array $records

Значение возврата

array

protected array attachNew(array $records, array $current, bool $touch = true)

Присоединить все идентификаторы, которые отсутствуют в текущем массиве.

Параметры

array $records
array $current
bool $touch

Значение возврата

array

int updateExistingPivot(mixed $id, array $attributes, bool $touch = true)

Обновить существующую запись pivot в таблице.

Параметры

mixed $id
array $attributes
bool $touch

Значение возврата

int

void attach(mixed $id, array $attributes = [], bool $touch = true)

Присоединить модель к родителю.

Параметры

mixed $id
array $attributes
bool $touch

Значение возврата

void

protected array createAttachRecords(array $ids, array $attributes)

Создать массив записей для вставки в таблицу pivot.

Параметры

array $ids
array $attributes

Значение возврата

array

protected array attacher(int $key, mixed $value, array $attributes, bool $timed)

Создать полную запись присоединения.

Параметры

int $key
mixed $value
array $attributes
bool $timed

Значение возврата

array

protected array getAttachId(mixed $key, mixed $value, array $attributes)

Получить идентификатор записи присоединения и дополнительные атрибуты.

Параметры

mixed $key
mixed $value
array $attributes

Значение возврата

array

protected array createAttachRecord(int $id, bool $timed)

Создать новую запись присоединения pivot.

Параметры

int $id
bool $timed

Значение возврата

array

protected array setTimestampsOnAttach(array $record, bool $exists = false)

Установить метки времени создания и обновления для записи присоединения.

Параметры

array $record
bool $exists

Значение возврата

array

int detach(int|array $ids = [], bool $touch = true)

Отсоединить модели от отношения.

Параметры

int|array $ids
bool $touch

Значение возврата

int

void touchIfTouching()

Если мы касаемся родительской модели, то коснитесь её.

Значение возврата

void

protected bool touchingParent()

Определить, нужно ли затрагивать родительскую модель при синхронизации.

Значение возврата

bool

protected string guessInverseRelation()

Попытаться угадать имя обратного отношения.

Значение возврата

string

protected Билдер newPivotQuery()

Создать новый билдер запроса для таблицы pivot.

Значение возврата

Билдер

Builder newPivotStatement()

Получить новый простой билдер запроса для таблицы связей.

Возвращаемое значение

Builder

Builder newPivotStatementForId(mixed $id)

Получить новое выражение для связующей таблицы для заданного ID.

Параметры

mixed $id

Возвращаемое значение

Builder

Pivot newPivot(array $attributes = [], bool $exists = false)

Создать новый экземпляр модели связующей таблицы.

Параметры

array $attributes
bool $exists

Возвращаемое значение

Pivot

Pivot newExistingPivot(array $attributes = [])

Создать новый экземпляр существующей модели связующей таблицы.

Параметры

array $attributes

Возвращаемое значение

Pivot

$this withPivot(array|mixed $columns)

Установить столбцы в таблице связей для извлечения.

Параметры

array|mixed $columns

Возвращаемое значение

$this

BelongsToMany withTimestamps(mixed $createdAt = null, mixed $updatedAt = null)

Указать, что таблица связей имеет метки создания и обновления.

Параметры

mixed $createdAt
mixed $updatedAt

Возвращаемое значение

BelongsToMany

string getRelatedFreshUpdate()

Получить имя столбца "updated_at" связанной модели.

Возвращаемое значение

string

string getHasCompareKey()

Получить ключ для сравнения с ключом родительской записи в запросе "has".

Возвращаемое значение

string

string getForeignKey()

Получить полное имя внешнего ключа для отношения.

Возвращаемое значение

string

string getOtherKey()

Получить полное имя "другого ключа" для отношения.

Возвращаемое значение

string

string getTable()

Получить промежуточную таблицу для отношения.

Возвращаемое значение

string

string getRelationName()

Получить имя отношения для данного отношения.

Возвращаемое значение

string

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.1/Illuminate/Database/Eloquent/Relations/BelongsToMany.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API