HasManyThrough
class HasManyThrough extends Relation (View source)
Свойства
| ForwardsCalls |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected Builder | $query | Экземпляр Eloquent query builder. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами morph в базе данных. | из Relation |
| protected Model | $throughParent | Экземпляр родительской модели "через". | |
| protected Model | $farParent | Экземпляр дальней родительской модели. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Дальний ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. | |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | |
| static protected int | $selfJoinCount | Количество самосоединений. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters) Перенаправить вызов метода на заданный объект. | from ForwardsCalls |
| static void | throwBadMethodCallException(string $method) Выбросить исключение о неправильном вызове метода для данного метода. | from ForwardsCalls |
| static void | macro(string $name, object|callable $macro) Зарегистрировать пользовательский макрос. | from Macroable |
| static void | mixin(object $mixin) Смешать другой объект в класс. | from Macroable |
| static bool | hasMacro(string $name) Проверяет, зарегистрирован ли макрос. | from Macroable |
| static mixed | __callStatic(string $method, array $parameters) Динамически обрабатывать вызовы класса. | from Macroable |
| mixed | __call(string $method, array $parameters) Динамически обрабатывать вызовы класса. | from Macroable |
| void | __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey) Создать новый экземпляр связи "многие через многие". | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов с отключенными ограничениями в отношении. | from Relation |
| 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 |
| Collection | get(array $columns = ['*']) Выполнить запрос как оператор "select". | |
| void | touch() Затронуть все связанные модели для отношения. | from Relation |
| int | rawUpdate(array $attributes = []) Выполнить необработанное обновление для базового запроса. | from Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery) Добавить ограничения для запроса подсчета отношений. | from Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения. | |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить основной запрос для отношения. | from Relation |
| Builder | getBaseQuery() Получить основной запрос, управляющий строителем Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName() Получить полностью квалифицированное имя родительского ключа. | |
| Model | getRelated() Получить связанную модель отношения. | from Relation |
| string | createdAt() Получить имя столбца "created at". | from Relation |
| string | updatedAt() Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту морфинга для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает индексированный по таблице массив из имен классов моделей. | from Relation |
| статический string|null | getMorphedModel(string $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone() Вызвать клонирование подлежащего билдера запросов при клонировании. | из Relation |
| void | performJoin(Builder $query = null) Установить условие объединения в запросе. | |
| bool | throughParentSoftDeletes() Определить, использует ли родительская связь "через" мягкое удаление. | |
| массив | buildDictionary(Collection $results) Сформировать словарь моделей, индексированный по внешнему ключу связи. | |
| Model | firstOrNew(array $attributes) Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр. | |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первую связанную модель. | |
| Model|HasManyThrough | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или бросить исключение. | |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу. | |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или бросить исключение. | |
| 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) Выполнить пагинацию заданного запроса в простой пагинатор. | |
| массив | shouldSelect(array $columns = ['*']) Установить условие «select» для запроса отношения. | |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на части. | |
| Generator | cursor() Получить генератор для данного запроса. | |
| bool | each(callable $callback, int $count = 1000) Выполнить обратный вызов для каждого элемента, используя разбиение на части. | |
| Builder | prepareQueryBuilder(array $columns = ['*']) Подготовить билдер запроса для выполнения запроса. | |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения к одному и тому же таблице. | |
| строка | getRelationCountHash() Получить хеш таблицы объединения отношений. | |
| строка | getQualifiedFarKeyName() Получить квалифицированное внешнее ключевое поле связанной модели. | |
| строка | getQualifiedFirstKeyName() Получить квалифицированное внешнее ключевое поле модели «через». | |
| строка | getQualifiedForeignKeyName() Получить квалифицированное внешнее ключевое поле связанной модели. | |
| строка | getQualifiedLocalKeyName() Получить квалифицированное локальное ключевое поле родительской модели «далеко». |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение плохого вызова метода для заданного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрировано ли макро.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывает вызовы к классу.
mixed __call(string $method, array $parameters)
Динамически обрабатывает вызовы к классу.
void __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Создать новый экземпляр связи many through.
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()
Получить связь для ленивой загрузки.
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 = ['*'])
Добавить ограничения для запроса связи.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для связи.
Builder getBaseQuery()
Получить базовый билдер запросов, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
строка getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
строка createdAt()
Получить имя столбца «создано в».
строка updatedAt()
Получить имя столбца «обновлено в».
строка relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
static массив morphMap(array $map = null, bool $merge = true)
Установить или получить карту морфизма для полиморфных отношений.
static protected массив|null buildMorphMapFromModels(array $models = null)
Строит таблично-индексированный массив из имен классов моделей.
static строка|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
пусто __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
protected пусто performJoin(Билдер $query = null)
Установить условие объединения в запросе.
логическое throughParentSoftDeletes()
Определить, использует ли родительский элемент «через» отношения мягкое удаление.
protected массив buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения.
Модель firstOrNew(array $attributes)
Получить первую запись связанной модели, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
смешанное first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Модель|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
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)
Разбить результаты запроса на страницы с помощью простого пагинатора.
protected array shouldSelect(array $columns = ['*'])
Установить предложение select для запроса отношения.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на куски.
Generator cursor()
Получить генератор для данного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента с разбивкой на куски.
protected Builder prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
string getRelationCountHash()
Получить хеш таблицы соединения отношения.
string getQualifiedFarKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле модели «через».
string getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле родительской модели «далеко».
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Relations/HasManyThrough.html