Spec-Zone.ru › Laravel 9

HasManyThrough

класс HasManyThrough расширяет Relation (Просмотреть исходный код)

Трейты

InteractsWithDictionary
ForwardsCalls
Macroable

Свойства

статический защищенный массив $macros

Зарегистрированные строковые макросы.

из Macroable
защищенный Builder $query

Экземпляр Eloquent-билдера запросов.

из Relation
защищенный Model $parent

Экземпляр родительской модели.

из Relation
защищенный Model $related

Экземпляр связанной модели.

из Relation
статический защищенный bool $constraints

Указывает, добавляет ли отношение ограничения.

из Relation
статический массив $morphMap

Массив для сопоставления имен классов с их именами морфинг в базе данных.

из Relation
статический защищенный bool $requireMorphMap

Предотвращает морфинг отношений без карты морфинг.

из Relation
статический защищенный int $selfJoinCount

Количество самосоединений.

из Relation
защищенный Model $throughParent

Экземпляр родительской модели «через».

защищенный Model $farParent

Экземпляр родительской модели «дальнего» уровня.

защищенный string $firstKey

Близкий ключ к отношению.

защищенный string $secondKey

Дальний ключ к отношению.

защищенный string $localKey

Локальный ключ к отношению.

защищенный string $secondLocalKey

Локальный ключ к промежуточной модели.

Методы

mixed forwardCallTo(mixed $object, string $method, array $parameters)

Передать вызов метода заданному объекту.

from ForwardsCalls
mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Передать вызов метода заданному объекту, вернув $this, если переданный вызов вернул себя.

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 void flushMacros()

Очистить существующие макросы.

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)

Создать новый экземпляр отношения has 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
Model sole(array|string $columns = ['*'])

Выполнить запрос и получить первый результат, если это единственная соответствующая запись.

from Relation
Collection get(array $columns = ['*'])

Выполнить запрос как операцию «выбрать».

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 = ['*'])

Добавить ограничения для запроса отношения.

string getRelationCountHash(bool $incrementJoinCount = true)

Получить хеш таблицы соединения отношения.

from Relation
array getKeys(array $models, string|null $key = null)

Получить все первичные ключи для массива моделей.

from Relation
Builder getRelationQuery()

Получить объект сборщика запросов, который будет содержать ограничения отношения.

from Relation
Builder getQuery()

Получить базовый запрос для отношения.

from Relation
Builder getBaseQuery()

Получить базовый сборщик запросов, управляющий сборщиком Eloquent.

from Relation
Builder toBase()

Получить экземпляр базового сборщика запросов.

from Relation
Model getParent()

Получить родительскую модель отношения.

from Relation
строка getQualifiedParentKeyName()

Получить полное квалифицированное имя родительского ключа.

Модель getRelated()

Получить связанную модель отношения.

из Отношения
строка createdAt()

Получить имя столбца «created at».

из Отношения
строка updatedAt()

Получить имя столбца «updated at».

из Отношения
строка relatedUpdatedAt()

Получить имя столбца «updated at» связанной модели.

из Отношения
строка whereInMethod(Модель $model, строка $key)

Получить имя метода «where in» для ленивой загрузки.

из Отношения
статический void requireMorphMap(bool $requireMorphMap = true)

Запретить использование полиморфных отношений без сопоставлений моделей.

из Отношения
статический bool requiresMorphMap()

Определить, требуют ли полиморфные отношения явное сопоставление моделей.

из Отношения
статический массив enforceMorphMap(массив $map, bool $merge = true)

Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели morph были явно сопоставлены.

из Отношения
статический массив morphMap(массив $map = null, bool $merge = true)

Установить или получить сопоставление морф для полиморфных отношений.

из Отношения
статический массив|null buildMorphMapFromModels(массив $models = null)

Создает массив с ключом таблицы из имен классов моделей.

из Отношения
статический строка|null getMorphedModel(строка $alias)

Получить модель, связанную с пользовательским полиморфным типом.

из Отношения
void __clone()

Принудительно клонировать базовый генератор запросов при клонировании.

из Отношения
смешанный getDictionaryKey(смешанный $attribute)

Получить атрибут ключа словаря — при необходимости преобразовав его в строку.

из Взаимодействие со словарем
void performJoin(Генератор $query = null)

Установить предложение join в запросе.

bool throughParentSoftDeletes()

Определить, использует ли родитель «через» отношения мягкие удаления.

$this withTrashedParents()

Указать, что в запросе должны быть включены удаленные родительские элементы «через».

массив buildDictionary(Коллекция $results)

Создать словарь модели, имеющий в качестве ключа внешний ключ отношения.

Модель firstOrNew(массив $attributes)

Получить первую запись связанной модели, соответствующую атрибутам, или создать ее.

Модель updateOrCreate(массив $attributes, массив $values = [])

Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.

Модель|HasManyThrough firstWhere(Замыкание|строка|массив $column, смешанный $operator = null, смешанный $value = null, строка $boolean = 'and')

Добавить базовое условие where в запрос и вернуть первый результат.

смешанный first(массив $columns = ['*'])

Выполнить запрос и получить первую связанную модель.

Модель|HasManyThrough firstOrFail(массив $columns = ['*'])

Выполнить запрос и получить первый результат или выбросить исключение.

Модель|Коллекция|смешанный firstOr(Замыкание|массив $columns = ['*'], Замыкание $callback = null)

Выполнить запрос и получить первый результат или вызвать обратный вызов.

Модель|Коллекция|null find(смешанный $id, массив $columns = ['*'])

Найти связанную модель по ее первичному ключу.

Коллекция findMany(Arrayable|массив $ids, массив $columns = ['*'])

Найти несколько связанных моделей по их первичным ключам.

Модель|Коллекция findOrFail(смешанный $id, массив $columns = ['*'])

Найти связанную модель по ее первичному ключу или выбросить исключение.

Модель|Коллекция|смешанный findOr(смешанный $id, Замыкание|массив $columns = ['*'], Замыкание $callback = null)

Найти связанную модель по ее первичному ключу или вызвать обратный вызов.

LengthAwarePaginator paginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое $page = null)

Получить страницу для оператора «выбрать».

Paginator simplePaginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое|null $page = null)

Вывести заданный запрос в виде простой страницы.

CursorPaginator cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = 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)

Разбить результаты запроса на куски по сравниванию числовых идентификаторов.

LazyCollection cursor()

Получить генератор для данного запроса.

bool each(callable $callback, int $count = 1000)

Выполнить обратный вызов для каждого элемента с разбивкой на куски.

LazyCollection lazy(int $chunkSize = 1000)

Выполнить запрос лениво, кусками заданного размера.

LazyCollection lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Выполнить запрос лениво, разбивая результаты запроса на куски по сравниванию идентификаторов.

Builder prepareQueryBuilder(array $columns = ['*'])

Подготовить билдер запроса для выполнения запроса.

Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса связи на той же таблице.

Builder getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса связи на той же таблице, что и родительский через.

строка getQualifiedFarKeyName()

Получить квалифицированное внешнее ключевое поле связанной модели.

строка getFirstKeyName()

Получить внешнее ключевое поле модели "через".

строка getQualifiedFirstKeyName()

Получить квалифицированное внешнее ключевое поле модели "через".

строка getForeignKeyName()

Получить внешнее ключевое поле связанной модели.

строка getQualifiedForeignKeyName()

Получить квалифицированное внешнее ключевое поле связанной модели.

строка getLocalKeyName()

Получить локальное ключевое поле родительской модели.

строка getQualifiedLocalKeyName()

Получить квалифицированное локальное ключевое поле родительской модели.

строка getSecondLocalKeyName()

Получить локальное ключевое поле промежуточной модели.

Подробности

protected mixed forwardCallTo(mixed $object, string $method, array $parameters)

Перенаправить вызов метода к данному объекту.

Параметры

mixed $object
строка $method
массив $parameters

Возвращаемое значение

mixed

Исключения

BadMethodCallException

protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)

Перенаправить вызов метода к данному объекту, вернув $this, если перенаправленный вызов вернул себя.

Параметры

mixed $object
строка $method
массив $parameters

Возвращаемое значение

mixed

Исключения

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

Выбросить исключение BadMethodCall для данного метода.

Параметры

строка $method

Возвращаемое значение

void

Исключения

BadMethodCallException

static void macro(string $name, object|callable $macro)

Зарегистрировать пользовательское макро.

Параметры

строка $name
object|callable $macro

Возвращаемое значение

void

static void mixin(object $mixin, bool $replace = true)

Смешать другой объект в класс.

Параметры

object $mixin
bool $replace

Возвращаемое значение

void

Исключения

ReflectionException

static bool hasMacro(string $name)

Проверяет, зарегистрировано ли макро.

Параметры

строка $name

Возвращаемое значение

bool

static void flushMacros()

Очистить существующие макросы.

Возвращаемое значение

void

static mixed __callStatic(string $method, array $parameters)

Динамически обрабатывать вызовы к классу.

Параметры

строка $method
массив $parameters

Возвращаемое значение

mixed

Исключения

BadMethodCallException
END_OF_DOCUMENT_MARKER

mixed __call(string $method, array $parameters)

Динамически обрабатывает вызовы к классу.

Параметры

string $method
array $parameters

Значение возврата

mixed

Исключения

BadMethodCallException

void __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)

Создает новый экземпляр отношения has many through.

Параметры

Builder $query
Model $farParent
Model $throughParent
string $firstKey
string $secondKey
string $localKey
string $secondLocalKey

Значение возврата

void

static mixed noConstraints(Closure $callback)

Выполняет обратный вызов с отключёнными ограничениями для отношения.

Параметры

Closure $callback

Значение возврата

mixed

void addConstraints()

Устанавливает основные ограничения для запроса отношения.

Значение возврата

void

void addEagerConstraints(array $models)

Устанавливает ограничения для жадной загрузки отношения.

Параметры

array $models

Значение возврата

void

array initRelation(array $models, string $relation)

Инициализирует отношение для набора моделей.

Параметры

array $models
string $relation

Значение возврата

array

array match(array $models, Collection $results, string $relation)

Сопоставляет результаты жадной загрузки с их родителями.

Параметры

array $models
Collection $results
string $relation

Значение возврата

array

mixed getResults()

Получить результаты отношения.

Значение возврата

mixed

Collection getEager()

Получить отношение для жадной загрузки.

Значение возврата

Collection

Model sole(array|string $columns = ['*'])

Выполнить запрос и получить первый результат, если это единственная совпадающая запись.

Параметры

array|string $columns

Значение возврата

Model

Исключения

Model>
MultipleRecordsFoundException

Collection get(array $columns = ['*'])

Выполнить запрос как операцию "select".

Параметры

array $columns

Значение возврата

Collection

void touch()

Обновить все связанные модели для отношения.

Значение возврата

void

int rawUpdate(array $attributes = [])

Выполнить сырое обновление по основному запросу.

Параметры

array $attributes

Значение возврата

int

Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

Добавить ограничения для запроса подсчета отношения.

Параметры

Builder $query
Builder $parentQuery

Значение возврата

Builder

Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса отношения.

Параметры

Builder $query
Builder $parentQuery
array|mixed $columns

Значение возврата

Builder

string getRelationCountHash(bool $incrementJoinCount = true)

Получить хэш для таблицы соединения отношения.

Параметры

bool $incrementJoinCount

Значение возврата

string

protected array getKeys(array $models, string|null $key = null)

Получить все первичные ключи для массива моделей.

Параметры

array $models
string|null $key

Значение возврата

array

protected Builder getRelationQuery()

Получить обработчик запроса, который будет содержать ограничения связи.

Значение возврата

Builder

Builder getQuery()

Получить основной запрос для связи.

Значение возврата

Builder

Builder getBaseQuery()

Получить базовый обработчик запроса, управляющий обработчиком Eloquent.

Значение возврата

Builder

Builder toBase()

Получить экземпляр базового обработчика запросов.

Значение возврата

Builder

Model getParent()

Получить родительскую модель связи.

Значение возврата

Model

string getQualifiedParentKeyName()

Получить полное имя родительского ключа.

Значение возврата

string

Model getRelated()

Получить связанную модель связи.

Значение возврата

Model

string createdAt()

Получить имя столбца «created at».

Значение возврата

string

string updatedAt()

Получить имя столбца «updated at».

Значение возврата

string

string relatedUpdatedAt()

Получить имя столбца «updated at» связанной модели.

Значение возврата

string

protected string whereInMethod(Model $model, string $key)

Получить имя метода «where in» для леничной загрузки.

Параметры

Model $model
string $key

Значение возврата

string

static void requireMorphMap(bool $requireMorphMap = true)

Предотвратить использование полиморфных связей без сопоставлений моделей.

Параметры

bool $requireMorphMap

Значение возврата

void

static bool requiresMorphMap()

Определить, требуют ли полиморфные связи явного сопоставления моделей.

Значение возврата

bool

static array enforceMorphMap(array $map, bool $merge = true)

Определить морф-сопоставление для полиморфных отношений и потребовать явного сопоставления всех моделей, подверженных морфингу.

Параметры

array $map
bool $merge

Значение возврата

array

static array morphMap(array $map = null, bool $merge = true)

Установить или получить морф-сопоставление для полиморфных связей.

Параметры

array $map
bool $merge

Значение возврата

array

static protected array|null buildMorphMapFromModels(array $models = null)

Создаёт таблично-индексированный массив из имён классов моделей.

Параметры

array $models

Значение возврата

array|null

static string|null getMorphedModel(string $alias)

Получить модель, связанную с пользовательским полиморфным типом.

Параметры

string $alias

Значение возврата

string|null

void __clone()

Принудительно клонировать основной обработчик запросов при клонировании.

Значение возврата

void

protected mixed getDictionaryKey(mixed $attribute)

Получить атрибут ключа словаря — при необходимости привести его к строковому типу.

Параметры

mixed $attribute

Значение возврата

mixed

Исключения

InvalidArgumentException

protected void performJoin(Builder $query = null)

Установить условие объединения в запросе.

Параметры

Builder $query

Значение возврата

void

bool throughParentSoftDeletes()

Определить, использует ли родительский элемент «через» связь мягкое удаление.

Значение возврата

bool

$this withTrashedParents()

Указать, что в запросе должны быть включены удалённые родительские элементы «через».

Значение возврата

$this

protected array buildDictionary(Collection $results)

Создать словарь модели, индексированный по внешнему ключу связи.

Параметры

Collection $results

Значение возврата

array

Модель firstOrNew(array $attributes)

Получить первую запись связанной модели, соответствующую атрибутам, или создать новую.

Параметры

array $attributes

Возвращаемое значение

Модель

Модель updateOrCreate(array $attributes, array $values = [])

Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.

Параметры

array $attributes
array $values

Возвращаемое значение

Модель

Модель|HasManyThrough firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')

Добавить базовое условие WHERE к запросу и вернуть первый результат.

Параметры

Closure|string|array $column
mixed $operator
mixed $value
string $boolean

Возвращаемое значение

Модель|HasManyThrough

mixed first(array $columns = ['*'])

Выполнить запрос и получить первую связанную модель.

Параметры

array $columns

Возвращаемое значение

mixed

Модель|HasManyThrough firstOrFail(array $columns = ['*'])

Выполнить запрос и получить первый результат или выбросить исключение.

Параметры

array $columns

Возвращаемое значение

Модель|HasManyThrough

Исключения

Модель>

Модель|HasManyThrough|mixed firstOr(Closure|array $columns = ['*'], Closure $callback = null)

Выполнить запрос и получить первый результат или вызвать обратный вызов.

Параметры

Closure|array $columns
Closure $callback

Возвращаемое значение

Модель|HasManyThrough|mixed

Модель|Коллекция|null find(mixed $id, array $columns = ['*'])

Найти связанную модель по её первичному ключу.

Параметры

mixed $id
array $columns

Возвращаемое значение

Модель|Коллекция|null

Коллекция findMany(Arrayable|array $ids, array $columns = ['*'])

Найти несколько связанных моделей по их первичным ключам.

Параметры

Arrayable|array $ids
array $columns

Возвращаемое значение

Коллекция

Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])

Найти связанную модель по её первичному ключу или выбросить исключение.

Параметры

mixed $id
array $columns

Возвращаемое значение

Модель|Коллекция

Исключения

Модель>

Модель|Коллекция|mixed findOr(mixed $id, Closure|array $columns = ['*'], Closure $callback = null)

Найти связанную модель по её первичному ключу или вызвать обратный вызов.

Параметры

mixed $id
Closure|array $columns
Closure $callback

Возвращаемое значение

Модель|Коллекция|mixed

LengthAwarePaginator paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)

Получить разбиение по страницам для оператора «select».

Параметры

int|null $perPage
array $columns
string $pageName
int $page

Возвращаемое значение

LengthAwarePaginator

Paginator simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)

Разбить результаты запроса на страницы с помощью простого разбиения по страницам.

Параметры

int|null $perPage
array $columns
string $pageName
int|null $page

Возвращаемое значение

Paginator

CursorPaginator cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = null)

Разбить заданный запрос на страницы с помощью курсоров.

Параметры

int|null $perPage
array $columns
string $cursorName
string|null $cursor

Возвращаемое значение

CursorPaginator

protected array shouldSelect(array $columns = ['*'])

Установить предложение select для запроса к связи.

Параметры

array $columns

Возвращаемое значение

array

bool chunk(int $count, callable $callback)

Разбить результаты запроса на куски.

Параметры

int $count
callable $callback

Возвращаемое значение

bool

bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)

Разбить результаты запроса на куски по численным идентификаторам.

Параметры

int $count
callable $callback
string|null $column
string|null $alias

Возвращаемое значение

bool

LazyCollection cursor()

Получить генератор для заданного запроса.

Возвращаемое значение

LazyCollection

bool each(callable $callback, int $count = 1000)

Выполнить обратный вызов для каждого элемента, разбивая на куски.

Параметры

callable $callback
int $count

Возвращаемое значение

bool

LazyCollection lazy(int $chunkSize = 1000)

Запрос в режиме отложенного выполнения, по кускам заданного размера.

Параметры

int $chunkSize

Возвращаемое значение

LazyCollection

LazyCollection lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)

Запрос в режиме отложенного выполнения, разбивая результаты запроса по сравниванию идентификаторов.

Параметры

int $chunkSize
string|null $column
string|null $alias

Возвращаемое значение

LazyCollection

protected Builder prepareQueryBuilder(array $columns = ['*'])

Подготовить билдер запроса к выполнению.

Параметры

array $columns

Возвращаемое значение

Builder

Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса отношения на том же столе.

Параметры

Builder $query
Builder $parentQuery
array|mixed $columns

Возвращаемое значение

Builder

Builder getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])

Добавить ограничения для запроса отношения на том же столе, что и родитель через.

Параметры

Builder $query
Builder $parentQuery
array|mixed $columns

Возвращаемое значение

Builder

string getQualifiedFarKeyName()

Получить квалифицированное внешнее ключевое поле связанной модели.

Возвращаемое значение

string

string getFirstKeyName()

Получить внешнее ключевое поле модели «через».

Возвращаемое значение

string

string getQualifiedFirstKeyName()

Получить квалифицированное внешнее ключевое поле модели «через».

Возвращаемое значение

string

string getForeignKeyName()

Получить внешнее ключевое поле связанной модели.

Возвращаемое значение

string

string getQualifiedForeignKeyName()

Получить квалифицированное внешнее ключевое поле связанной модели.

Возвращаемое значение

string

string getLocalKeyName()

Получить локальное ключевое поле родительской модели «далеко».

Возвращаемое значение

string

string getQualifiedLocalKeyName()

Получить квалифицированное локальное ключевое поле родительской модели «далеко».

Возвращаемое значение

string

string getSecondLocalKeyName()

Получить локальное ключевое поле промежуточной модели.

Возвращаемое значение

string

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/9.x/Illuminate/Database/Eloquent/Relations/HasManyThrough.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API