HasManyThrough
класс HasManyThrough расширяет HasOneOrManyThrough (Просмотреть исходный код)
Трейты
| InteractsWithDictionary | |
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный TRelatedModel> | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| защищенный TDeclaringModel | $parent | Экземпляр родительской модели. | из Relation |
| защищенный TRelatedModel | $related | Экземпляр связанной модели. | из Relation |
| защищенный bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| статический защищенный bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| статический защищенный bool | $requireMorphMap | Препятствует морф-связям без морф-сопоставления. | из Relation |
| статический защищенный int | $selfJoinCount | Количество само-соединений. | из Relation |
| защищенный TIntermediateModel | $throughParent | Экземпляр родительской модели "через". | из HasOneOrManyThrough |
| защищенный TDeclaringModel | $farParent | Экземпляр родительской модели "дальнего" родителя. | из HasOneOrManyThrough |
| защищенный string | $firstKey | Ближайший ключ в связи. | из HasOneOrManyThrough |
| защищенный string | $secondKey | Дальний ключ в связи. | из HasOneOrManyThrough |
| защищенный string | $localKey | Локальный ключ в связи. | из HasOneOrManyThrough |
| защищенный string | $secondLocalKey | Локальный ключ в промежуточной модели. | из HasOneOrManyThrough |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Передать вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение о неверном вызове метода для указанного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | из Macroable |
| static void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обрабатывает вызовы к классу. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обрабатывает вызовы к классу. | из Macroable |
| void | __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Создать новый экземпляр отношения has many through. | из HasOneOrManyThrough |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями в отношении. | из Relation |
| void | addConstraints()
Установить базовые ограничения в отношении запроса. | из HasOneOrManyThrough |
| void | addEagerConstraints(array $models) Без описания | из HasOneOrManyThrough |
| TDeclaringModel> | initRelation(array $models, string $relation) Без описания | |
| TDeclaringModel> | match(array $models, Collection $results, string $relation) Без описания | |
| TResult | getResults() Без описания | |
| TRelatedModel> | getEager()
Получить отношение для ленивой загрузки. | из Relation |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись. | из Relation |
| TRelatedModel> | get(array $columns = ['*']) Без описания | из HasOneOrManyThrough |
| void | touch()
Изменить метку времени всех связанных моделей для отношения. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить обновление с использованием SQL запроса. | из Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта существования отношения. | из Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Без описания | из HasOneOrManyThrough |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы присоединения отношения. | из Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| TRelatedModel> | getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения. | из Relation |
| TRelatedModel> | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent. | из Relation |
| Builder | toBase()
Получить экземпляр базового конструктора запроса. | из Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа. | from HasOneOrManyThrough |
| TRelatedModel | getRelated()
Получить связанную модель отношения. | from Relation |
| string | createdAt()
Получить имя столбца "created at". | from Relation |
| string | updatedAt()
Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | from Relation |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для eager загрузки по заданному набору ключей моделей. | from Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager загрузки. | from Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставлений моделей. | from Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | from Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить массив сопоставлений для полиморфных отношений и потребовать явного сопоставления всех моделей с морфированием. | from Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить массив сопоставлений для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array|null $models = null)
Создаёт таблично-индексированный массив из имён классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с настраиваемым полиморфным типом. | from Relation |
| static int|string | getMorphAlias(string $className)
Получить псевдоним, связанный с настраиваемым полиморфным классом. | from Relation |
| void | __clone()
Вынудительно клонировать подчинённый генератор запросов при клонировании. | from Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, преобразовав его в строку при необходимости. | from InteractsWithDictionary |
| void | performJoin(Builder|null $query = null)
Установить предложение соединения в запросе. | from HasOneOrManyThrough |
| bool | throughParentSoftDeletes()
Определить, использует ли родительский элемент "through" отношения Soft Deletes. | from HasOneOrManyThrough |
| $this | withTrashedParents()
Указать, что в запросе должны быть включены удалённые родительские элементы "through". | from HasOneOrManyThrough |
| TRelatedModel[][] | buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения. | from HasOneOrManyThrough |
| TRelatedModel | firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр. | from HasOneOrManyThrough |
| TRelatedModel | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | from HasOneOrManyThrough |
| TRelatedModel | createOrFirst(array $attributes = [], array $values = [])
Попытаться создать запись. Если произойдёт нарушение уникальности, попытаться найти соответствующую запись. | from HasOneOrManyThrough |
| TRelatedModel | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | from HasOneOrManyThrough |
| TRelatedModel|null | firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where в запрос и вернуть первый результат. | from HasOneOrManyThrough |
| TRelatedModel|null | first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель. | from HasOneOrManyThrough |
| TRelatedModel | firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение. | from HasOneOrManyThrough |
| firstOr($columns = ['*'], Closure|null $callback = null) Нет описания | из HasOneOrManyThrough | |
| find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу. | из HasOneOrManyThrough | |
| TRelatedModel> | findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам. | из HasOneOrManyThrough |
| findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение. | из HasOneOrManyThrough | |
| findOr($id, $columns = ['*'], Closure|null $callback = null) Нет описания | из HasOneOrManyThrough | |
| LengthAwarePaginator | paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить пагинатор для оператора "select". | из HasOneOrManyThrough |
| Paginator | simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить данный запрос на страницы с помощью простого пагинатора. | из HasOneOrManyThrough |
| CursorPaginator | cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = null)
Разбить данный запрос на страницы с помощью курсорного пагинатора. | из HasOneOrManyThrough |
| array | shouldSelect(array $columns = ['*'])
Установить предложение select для запроса отношения. | из HasOneOrManyThrough |
| bool | chunk(int $count, callable $callback)
Разбить результаты запроса на части. | из HasOneOrManyThrough |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса, сравнивая числовые ID. | из HasOneOrManyThrough |
| bool | chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса, сравнивая ID в нисходящем порядке. | из HasOneOrManyThrough |
| bool | eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов для каждого элемента, разбивая на части по ID. | из HasOneOrManyThrough |
| TRelatedModel> | cursor()
Получить генератор для данного запроса. | из HasOneOrManyThrough |
| bool | each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента, разбивая на части. | из HasOneOrManyThrough |
| TRelatedModel> | lazy(int $chunkSize = 1000)
Запрос лениво, частями заданного размера. | из HasOneOrManyThrough |
| TRelatedModel> | lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Запрос лениво, разбивая результаты запроса на части, сравнивая ID. | из HasOneOrManyThrough |
| TRelatedModel> | lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Запрос лениво, разбивая результаты запроса на части, сравнивая ID в нисходящем порядке. | из HasOneOrManyThrough |
| TRelatedModel> | prepareQueryBuilder(array $columns = ['*'])
Подготовить запрос для выполнения. | из HasOneOrManyThrough |
| TRelatedModel> | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице. | из HasOneOrManyThrough |
| TRelatedModel> | getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице, что и родительский through. | из HasOneOrManyThrough |
| $this | take(int $value)
Псевдоним для установки значения "limit" запроса. | из HasOneOrManyThrough |
| $this | limit(int $value)
Установить значение "limit" запроса. | из HasOneOrManyThrough |
| string | getQualifiedFarKeyName()
Получить квалифицированный внешний ключ в связанной модели. | из HasOneOrManyThrough |
| string | getFirstKeyName()
Получить внешний ключ в модели "through". | из HasOneOrManyThrough |
| string | getQualifiedFirstKeyName()
Получить полное имя внешнего ключа на модели "через". | из HasOneOrManyThrough |
| string | getForeignKeyName()
Получить имя внешнего ключа на связанной модели. | из HasOneOrManyThrough |
| string | getQualifiedForeignKeyName()
Получить полное имя внешнего ключа на связанной модели. | из HasOneOrManyThrough |
| string | getLocalKeyName()
Получить локальный ключ на родительской модели. | из HasOneOrManyThrough |
| string | getQualifiedLocalKeyName()
Получить полное имя локального ключа на родительской модели. | из HasOneOrManyThrough |
| string | getSecondLocalKeyName()
Получить локальный ключ на промежуточной модели. | из HasOneOrManyThrough |
| one() Без описания |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул сам себя.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение BadMethodCallException для данного метода.
static void macro(string $name, object|callable $macro)
Регистрировать пользовательское макро.
static void mixin(object $mixin, bool $replace = true)
Вмешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрировано ли макро.
static void flushMacros()
Очистить существующие макросы.
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 через.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений по отношению.
void addConstraints()
Установить базовые ограничения по запросу отношения.
void addEagerConstraints(array $models)
Без описания
TDeclaringModel> initRelation(array $models, string $relation)
Без описания
TDeclaringModel> match(array $models, Collection $results, string $relation)
Без описания
TResult getResults()
Без описания
TRelatedModel> getEager()
Получить отношение для ленивой загрузки.
TRelatedModel sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
TRelatedModel> get(array $columns = ['*'])
Без описания
void touch()
Обновить метки времени всех связанных моделей для отношения.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для основного запроса.
TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета отношений.
TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Без описания
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения.
protected array<int,int|string> getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected TRelatedModel> getRelationQuery()
Получить билдер запроса, который будет содержать ограничения отношения.
TRelatedModel> getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Builder toBase()
Получить базовый экземпляр билдера запроса.
TDeclaringModel getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа.
TRelatedModel getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя колонки "created at".
string updatedAt()
Получить имя колонки "updated at".
string relatedUpdatedAt()
Получить имя колонки "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для жадного загрузки заданного набора ключей модели.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для жадной загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставлений моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явных сопоставлений моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены.
static array morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array|null $models = null)
Создает таблично-индексированный массив из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
static int|string getMorphAlias(string $className)
Получить псевдоним, связанный с пользовательским полиморфным классом.
void __clone()
Вынудительное клонирование базового билдера запроса при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке.
protected void performJoin(Builder|null $query = null)
Установить условие объединения в запросе.
bool throughParentSoftDeletes()
Определить, использует ли родительская связь "through" мягкое удаление.
$this withTrashedParents()
Указать, что в запросе должны быть включены удаленные родительские связи "through".
protected TRelatedModel[][] buildDictionary(Collection $results)
Создает словарь модели, индексированный по внешнему ключу связи.
TRelatedModel firstOrNew(array $attributes = [], array $values = [])
Получить первую связанную модель, соответствующую атрибутам, или создать новую.
TRelatedModel firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать ее.
TRelatedModel createOrFirst(array $attributes = [], array $values = [])
Попробовать создать запись. Если возникает нарушение уникального ограничения, попытаться найти соответствующую запись.
TRelatedModel updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.
TRelatedModel|null firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where в запрос и вернуть первый результат.
TRelatedModel|null first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
TRelatedModel firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
firstOr($columns = ['*'], Closure|null $callback = null)
Нет описания
find(mixed $id, array $columns = ['*'])
Найти связанную модель по ее первичному ключу.
TRelatedModel> findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по ее первичному ключу или выбросить исключение.
findOr($id, $columns = ['*'], Closure|null $callback = null)
Нет описания
LengthAwarePaginator paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить разбиение на страницы для оператора "select".
Paginator simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить на страницы заданный запрос с помощью простого разбиения на страницы.
CursorPaginator cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = 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)
Разбить результаты запроса на фрагменты, сравнивая числовые идентификаторы.
bool chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на фрагменты, сравнивая идентификаторы в порядке убывания.
bool eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов над каждым элементом, разбивая по ID.
TRelatedModel> cursor()
Получить генератор для заданного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента с разделением на части.
TRelatedModel> lazy(int $chunkSize = 1000)
Запрос в режиме отложенной загрузки по частям заданного размера.
TRelatedModel> lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Запрос в режиме отложенной загрузки, разбивая результаты запроса по сравнениям идентификаторов.
TRelatedModel> lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Запрос в режиме отложенной загрузки, разбивая результаты запроса по сравнениям идентификаторов в обратном порядке.
protected TRelatedModel> prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
TRelatedModel> getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице.
TRelatedModel> getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на той же таблице, что и родитель через.
$this take(int $value)
Псевдоним для установки значения "limit".
$this limit(int $value)
Установить значение "limit" для запроса.
string getQualifiedFarKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getFirstKeyName()
Получить внешнее ключевое поле модели "через".
string getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле модели "через".
string getForeignKeyName()
Получить внешнее ключевое поле связанной модели.
string getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getLocalKeyName()
Получить локальное ключевое поле родительской модели.
string getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле родительской модели.
string getSecondLocalKeyName()
Получить локальное ключевое поле промежуточной модели.
one()
Описание отсутствует
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/HasManyThrough.html