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