Spec-Zone.ru › Laravel 8

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)

Создать новый экземпляр связи "имеет много через".

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

Выполнить запрос как оператор "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 = ['*'])

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

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
Model getParent()

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

from Relation
string getQualifiedParentKeyName()

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

Модель getRelated()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bool throughParentSoftDeletes()

Определить, использует ли родитель "через" отношение Soft Deletes.

$this withTrashedParents()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

массив 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)

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

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

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

string getQualifiedFarKeyName()

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

string getFirstKeyName()

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

string getQualifiedFirstKeyName()

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

string getForeignKeyName()

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

string getQualifiedForeignKeyName()

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

string getLocalKeyName()

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

string getQualifiedLocalKeyName()

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

string getSecondLocalKeyName()

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

Подробности

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

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

Параметры

mixed $object
string $method
array $parameters

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

mixed

Исключения

BadMethodCallException

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

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

Параметры

mixed $object
string $method
array $parameters

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

mixed

Исключения

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

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

Параметры

string $method

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

void

Исключения

BadMethodCallException

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

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

Параметры

string $name
object|callable $macro

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

void

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

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

Параметры

object $mixin
bool $replace

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

void

Исключения

ReflectionException

static bool hasMacro(string $name)

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

Параметры

string $name

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

bool

static void flushMacros()

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

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

void

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

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

Параметры

string $method
array $parameters

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

mixed

Исключения

BadMethodCallException

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)

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

Parameters

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

Return Value

void

static mixed noConstraints(Closure $callback)

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

Parameters

Closure $callback

Return Value

mixed

void addConstraints()

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

Return Value

void

void addEagerConstraints(array $models)

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

Parameters

array $models

Return Value

void

array initRelation(array $models, string $relation)

Инициализировать связь для набора моделей.

Parameters

array $models
string $relation

Return Value

array

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

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

Parameters

array $models
Collection $results
string $relation

Return Value

array

mixed getResults()

Получить результаты связи.

Return Value

mixed

Collection getEager()

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

Return Value

Collection

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

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

Parameters

array|string $columns

Return Value

Model

Exceptions

ModelNotFoundException
MultipleRecordsFoundException

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

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

Parameters

array $columns

Return Value

Collection

void touch()

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

Return Value

void

int rawUpdate(array $attributes = [])

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

Parameters

array $attributes

Return Value

int

Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)

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

Parameters

Builder $query
Builder $parentQuery

Return Value

Builder

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

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

Parameters

Builder $query
Builder $parentQuery
array|mixed $columns

Return Value

Builder

string getRelationCountHash(bool $incrementJoinCount = true)

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

Parameters

bool $incrementJoinCount

Return Value

string

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

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

Parameters

array $models
string|null $key

Return Value

array

protected Builder getRelationQuery()

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

Return Value

Builder

Builder getQuery()

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

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

Builder

Builder getBaseQuery()

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

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

Builder

Модель getParent()

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

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

Модель

строка getQualifiedParentKeyName()

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

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

строка

Модель getRelated()

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

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

Модель

строка createdAt()

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

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

строка

строка updatedAt()

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

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

строка

строка relatedUpdatedAt()

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

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

строка

protected строка whereInMethod(Модель $model, string $key)

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

Параметры

Модель $model
строка $key

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

строка

static void requireMorphMap(bool $requireMorphMap = true)

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

Параметры

bool $requireMorphMap

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

void

static bool requiresMorphMap()

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

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

bool

static массив enforceMorphMap(array $map, bool $merge = true)

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

Параметры

массив $map
bool $merge

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

массив

static массив morphMap(array $map = null, bool $merge = true)

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

Параметры

массив $map
bool $merge

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

массив

static protected массив|null buildMorphMapFromModels(array $models = null)

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

Параметры

массив $models

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

массив|null

static строка|null getMorphedModel(string $alias)

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

Параметры

строка $alias

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

строка|null

void __clone()

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

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

void

protected смешанный getDictionaryKey(mixed $attribute)

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

Параметры

смешанный $attribute

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

смешанный

Исключения

InvalidArgumentException

protected void performJoin(Builder $query = null)

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

Параметры

Builder $query

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

void

bool throughParentSoftDeletes()

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

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

bool

$this withTrashedParents()

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

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

$this

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

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

Параметры

Коллекция $results

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

массив

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

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

Параметры

массив $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

Исключения

ModelNotFoundException

Модель|Коллекция|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

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

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

Исключения

ModelNotFoundException

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

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

Параметры

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

Генератор cursor()

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

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

Генератор

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/8.x/Illuminate/Database/Eloquent/Relations/HasManyThrough.html

Spec-Zone.ru

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