Spec-Zone.ru › Laravel 7

HasManyThrough

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

Свойства

ForwardsCalls
Macroable

Свойства

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

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

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

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

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

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

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

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

из Relation
статический защищённый булево $constraints

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

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

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

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

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

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

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

защищённый строка $firstKey

Ближайший ключ в связи.

защищённый строка $secondKey

Отдалённый ключ в связи.

защищённый строка $localKey

Локальный ключ в связи.

защищённый строка $secondLocalKey

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

статический защищённый целое число $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)

Создать новый экземпляр отношения 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
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|null $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
string whereInMethod(Model $model, string $key)

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

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

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

from Relation
статический массив|null buildMorphMapFromModels(массив $models = null)

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

из Relation
статический строка|null getMorphedModel(строка $alias)

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

из Relation
void __clone()

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

из Relation
void performJoin(Builder $query = null)

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

boolean throughParentSoftDeletes()

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

$this withTrashedParents()

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

массив buildDictionary(Collection $results)

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

Model firstOrNew(массив $attributes)

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

Model updateOrCreate(массив $attributes, массив $values = [])

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

Model|HasManyThrough firstWhere(Closure|строка|массив $column, смешанное $operator = null, смешанное $value = null, строка $boolean = 'and')

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

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

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

Model|HasManyThrough firstOrFail(массив $columns = ['*'])

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

Model|Collection|null find(смешанное $id, массив $columns = ['*'])

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

Collection findMany(Arrayable|массив $ids, массив $columns = ['*'])

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

Model|Collection findOrFail(смешанное $id, массив $columns = ['*'])

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

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

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

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

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

массив shouldSelect(массив $columns = ['*'])

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

boolean chunk(целое $count, вызываемая функция $callback)

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

boolean chunkById(целое $count, вызываемая функция $callback, строка|null $column = null, строка|null $alias = null)

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

Generator cursor()

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

boolean each(вызываемая функция $callback, целое $count = 1000)

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

Builder prepareQueryBuilder(массив $columns = ['*'])

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

Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, массив|смешанное $columns = ['*'])

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

Builder getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, массив|смешанное $columns = ['*'])

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

строка getRelationCountHash()

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

строка getQualifiedFarKeyName()

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

строка getFirstKeyName()

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

строка getQualifiedFirstKeyName()

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

строка getForeignKeyName()

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

строка getQualifiedForeignKeyName()

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

строка getLocalKeyName()

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

строка getQualifiedLocalKeyName()

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

строка getSecondLocalKeyName()

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

Подробности

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

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

Parameters

mixed $object
string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static protected void throwBadMethodCallException(string $method)

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

Parameters

string $method

Return Value

void

Exceptions

BadMethodCallException

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

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

Parameters

string $name
object|callable $macro

Return Value

void

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

Добавить другой объект в класс.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

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

Parameters

string $name

Return Value

bool

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

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

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

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

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

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

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

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

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

Parameters

array $models
string|null $key

Return Value

array

Builder getQuery()

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

Return Value

Builder

Builder getBaseQuery()

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

Return Value

Builder

Model getParent()

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

Return Value

Model

string getQualifiedParentKeyName()

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

Return Value

string

Model getRelated()

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

Return Value

Model

string createdAt()

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

Return Value

string

string updatedAt()

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

Return Value

string

string relatedUpdatedAt()

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

Return Value

string

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

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

Parameters

Model $model
string $key

Return Value

string

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

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

Parameters

array $map
bool $merge

Return Value

array

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

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

Parameters

array $models

Return Value

array|null

static string|null getMorphedModel(string $alias)

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

Parameters

string $alias

Return Value

string|null

void __clone()

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

Return Value

void

protected void performJoin(Builder $query = null)

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

Parameters

Builder $query

Return Value

void

bool throughParentSoftDeletes()

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

Return Value

bool

$this withTrashedParents()

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

Return Value

$this

protected array buildDictionary(Collection $results)

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

Parameters

Collection $results

Return Value

array

Model firstOrNew(array $attributes)

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

Parameters

array $attributes

Return Value

Model

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

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

Параметры

массив $attributes
массив $values

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

Модель

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

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

Параметры

Closure|строка|массив $column
смешанный тип $operator
смешанный тип $value
строка $boolean

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

Модель|HasManyThrough

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

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

Параметры

массив $columns

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

смешанный тип

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

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

Параметры

массив $columns

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

Модель|HasManyThrough

Исключения

ModelNotFoundException

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

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

Параметры

смешанный тип $id
массив $columns

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

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

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

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

Параметры

Arrayable|массив $ids
массив $columns

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

Коллекция

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

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

Параметры

смешанный тип $id
массив $columns

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

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

Исключения

ModelNotFoundException

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

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

Параметры

int|null $perPage
массив $columns
строка $pageName
int $page

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

LengthAwarePaginator

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

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

Параметры

int|null $perPage
массив $columns
строка $pageName
int|null $page

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

Paginator

protected массив shouldSelect(array $columns = ['*'])

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

Параметры

массив $columns

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

массив

bool chunk(int $count, callable $callback)

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

Параметры

int $count
вызываемый объект $callback

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

bool

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

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

Параметры

int $count
вызываемый объект $callback
строка|null $column
строка|null $alias

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

bool

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

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

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

Генератор

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

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

Параметры

вызываемый объект $callback
int $count

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

bool

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

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

Параметры

Массив $columns

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

Builder

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

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

Параметры

Builder $query
Builder $parentQuery
Массив|смешанный тип $columns

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

Builder

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

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

Параметры

Builder $query
Builder $parentQuery
Массив|смешанный тип $columns

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

Builder

string getRelationCountHash()

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

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

Строка

string getQualifiedFarKeyName()

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

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

Строка

string getFirstKeyName()

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

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

Строка

string getQualifiedFirstKeyName()

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

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

Строка

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

Spec-Zone.ru

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