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)
Передать вызов метода заданному объекту.
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 = ['*'])
Выполнить запрос в качестве оператора "select".
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|null $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для связи.
Builder getBaseQuery()
Получить базовый билдер запросов, управляющий билдером Eloquent.
Model getParent()
Получить родительскую модель связи.
string getQualifiedParentKeyName()
Получить полное имя ключа родительского элемента.
Model getRelated()
Получить связанную модель связи.
string createdAt()
Получить имя столбца «создано в».
string updatedAt()
Получить имя столбца «обновлено в».
string relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
protected string whereInMethod(Model $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()
Определить, использует ли родительский элемент «через» связи мягкое удаление.
$this withTrashedParents()
Указать, что в запросе следует включать удалённых родителей «через».
protected array buildDictionary(Collection $results)
Построить словарь моделей, индексированный по внешнему ключу связи.
Model 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(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(Arrayable|массив $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 массив 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)
Выполнить вызываемый объект над каждым элементом, разбивая на куски.
protected Builder 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/7.x/Illuminate/Database/Eloquent/Relations/HasManyThrough.html