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