HasManyThrough
class HasManyThrough 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 Model | $farParent | Экземпляр родительской модели на удалённом конце. | |
| protected string | $firstKey | Ближайший ключ к отношению. | |
| protected string | $secondKey | Удаленный ключ к отношению. | |
| protected string | $localKey | Локальный ключ к отношению. |
Методы
| void | __construct(Builder $query, Model $farParent, Model $parent, string $firstKey, string $secondKey, string $localKey) Создать новый экземпляр связи many-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() Обновить метки времени связанных моделей для связи. | from Relation |
| int | rawUpdate(array $attributes = []) Выполнить сырое обновление базового запроса. | from Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчета связи. | from Relation |
| Builder | getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*']) Добавить ограничения для запроса связи. | |
| 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() Получить имя столбца "created_at". | from Relation |
| string | updatedAt() Получить имя столбца "updated_at". | from Relation |
| string | relatedUpdatedAt() Получить имя столбца "updated_at" связанной модели. | 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 |
| void | setJoin(Builder $query = null) Установить условие объединения в запросе. | |
| bool | parentSoftDeletes() Определить, использует ли родительская модель мягкое удаление. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу связи. | |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первую связанную модель. | |
| Model|HasManyThrough | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по ее первичному ключу. |
| Коллекция | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | |
| Модель|Коллекция | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | |
| Коллекция | get(array $columns = ['*']) Выполнить запрос как операцию "select". | |
| массив | getSelectColumns(array $columns = ['*']) Установить предложение select для запроса отношения. | |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null) Получить пагинатор для оператора "select". | |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page') Разбить результаты запроса на страницы с помощью простого пагинатора. | |
| строка | getHasCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | |
| строка | getForeignKey() Получить квалифицированный внешний ключ связанной модели. | |
| строка | getThroughKey() Получить квалифицированный внешний ключ модели "through". |
Подробности
void __construct(Builder $query, Model $farParent, Model $parent, string $firstKey, string $secondKey, string $localKey)
Создать новый экземпляр отношения "has many through".
void addConstraints()
Установить базовые ограничения на запрос отношения.
void addEagerConstraints(array $models)
Установить ограничения для отложенной загрузки отношения.
массив initRelation(array $models, string $relation)
Инициализировать отношение на наборе моделей.
массив match(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с отложенной загрузкой результаты с их родителями.
смешанный тип getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для отложенной загрузки.
void touch()
Обновить все связанные модели для отношения.
целое число rawUpdate(array $attributes = [])
Выполнить прямое обновление базового запроса.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчета отношения.
Builder getRelationQuery(Builder $query, Builder $parent, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
static смешанный тип noConstraints(Closure $callback)
Вызвать коллбэк с отключенными ограничениями для отношения.
protected массив getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить основное запрошенное значение для связи.
Builder getBaseQuery()
Получить основной объект-строитель запроса, управляющий объектом-строителем Eloquent.
Модель getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
string wrap(string $value)
Оборачивает заданное значение с помощью грамматики родительского запроса.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить отображение morph для полиморфных связей.
static protected array|null buildMorphMapFromModels(array $models = null)
Создает таблично-индексированный массив из имен классов моделей.
mixed __call(string $method, array $parameters)
Обрабатывает динамические вызовы методов для отношения.
void __clone()
Принудительно клонирует базовый объект-строитель запроса при клонировании.
protected void setJoin(Builder $query = null)
Установить условие объединения в запросе.
bool parentSoftDeletes()
Определить, использует ли родительская сущность отношения мягкое удаление.
protected array buildDictionary(Коллекция $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Модель|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по первичному ключу или выбросить исключение.
Коллекция get(array $columns = ['*'])
Выполнить запрос как операцию "select".
protected array getSelectColumns(array $columns = ['*'])
Установить предложение select для запроса отношения.
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить пагинатор для оператора "select".
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page')
Разбить результат запроса на страницы с помощью простого пагинатора.
string getHasCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
string getForeignKey()
Получить квалифицированный внешний ключ связанной модели.
string getThroughKey()
Получить квалифицированный внешний ключ модели "через".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.2/Illuminate/Database/Eloquent/Relations/HasManyThrough.html