HasManyThrough
class HasManyThrough extends Связь (Просмотреть исходный код)
Свойства
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected Построитель запроса | $query | Экземпляр построителя запросов Eloquent. | из Связь |
| protected Модель | $parent | Экземпляр родительской модели. | из Связь |
| protected Модель | $related | Экземпляр связанной модели. | из Связь |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Связь |
| static array | $morphMap | Массив для сопоставления имен классов с их именами морф в базе данных. | из Связь |
| protected Модель | $throughParent | Экземпляр родительской модели "через". | |
| protected Модель | $farParent | Экземпляр удалённой родительской модели. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Удаленный ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. | |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | |
| static protected int | $selfJoinCount | Количество самосоединений. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту. | из 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 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)
Создать новый экземпляр связи "многие ко многим через". | |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений в отношении. | из 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()
Получить отношение для ленизой загрузки. | из Relation |
| Collection | get(array $columns = ['*'])
Выполнить запрос как операцию "select". | |
| void | touch()
Обновить метку времени для всех связанных моделей отношения. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление базового запроса. | из Relation |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта отношения. | из Relation |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения. | |
| array | getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery()
Получить основной запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить основной объект построения запроса, используемый Eloquent builder. | из Relation |
| Model | getParent()
Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа. | |
| Model | getRelated()
Получить связанную модель отношения. | из Relation |
| string | createdAt()
Получить имя колонки "created at". | из Relation |
| string | updatedAt()
Получить имя колонки "updated at". | из Relation |
| string | relatedUpdatedAt()
Получить имя колонки "updated at" связанной модели. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для ленизой загрузки. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true)
Установить или получить морф-карту для полиморфных отношений. | из Relation |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создаёт массив с ключами-таблицами из имён классов моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone()
Принудительно клонировать базовый билдер запросов при клонировании. | из Relation |
| void | performJoin(Builder $query = null)
Установить условие объединения в запросе. | |
| bool | throughParentSoftDeletes()
Определить, использует ли родительская модель «через» мягкие удаления. | |
| массив | 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(смешанный $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» для запроса связи. | |
| bool | chunk(целое $count, вызов $callback)
Разбить результаты запроса на части. | |
| bool | chunkById(целое $count, вызов $callback, строка|null $column = null, строка|null $alias = null)
Разбить результаты запроса на части по сравнению числовых идентификаторов. | |
| Generator | cursor()
Получить генератор для заданного запроса. | |
| bool | 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()
Получить локальный ключ промежуточной модели. |
Details
protected смешанный forwardCallTo(смешанный $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение вызова недопустимого метода для данного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательский макрос.
static void mixin(object $mixin, bool $replace = true)
Добавить другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрирован ли макрос.
static mixed __callStatic(string $method, array $parameters)
Динамически обрабатывает вызовы класса.
mixed __call(string $method, array $parameters)
Динамически обрабатывает вызовы класса.
void __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Создать новый экземпляр связи «многие ко многим через».
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для связи.
void addConstraints()
Установить базовые ограничения для запроса к связи.
void addEagerConstraints(array $models)
Установить ограничения для отложенной загрузки связи.
array initRelation(array $models, string $relation)
Инициализировать связь для набора моделей.
array match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родительскими элементами.
mixed getResults()
Получить результаты связи.
Collection getEager()
Получить связь для отложенной загрузки.
Collection get(array $columns = ['*'])
Выполнить запрос как операцию «выбор».
void touch()
Обновить все связанные модели для связи.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление для базового запроса.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования связи.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для ленивой загрузки.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить карту морфирования для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создает таблично-ключевой массив из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
protected void performJoin(Builder $query = null)
Установить условие объединения в запросе.
bool throughParentSoftDeletes()
Определить, использует ли родительский элемент "через" отношения мягкие удаления.
protected array buildDictionary(Collection $results)
Создать словарь модели, индексированный по внешнему ключу отношения.
Модель firstOrNew(array $attributes)
Получить первую связанную запись модели, соответствующую атрибутам, или создать ее.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями.
Модель|HasManyThrough firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where в запрос и вернуть первый результат.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Модель|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или бросить исключение.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или бросить исключение.
LengthAwarePaginator paginate(int|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)
Разбить заданный запрос на страницы с помощью простого пагинатора.
protected array shouldSelect(array $columns = ['*'])
Установить предложение select для запроса связи.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на куски.
bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
Generator cursor()
Получить генератор для заданного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов над каждым элементом, разбивая на куски.
protected Билдер prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
Builder getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе, что и родительский столбец через.
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/6.x/Illuminate/Database/Eloquent/Relations/HasManyThrough.html