HasManyThrough
класс HasManyThrough расширяет Relation (View source)
Свойства
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами morph в базе данных. | из Relation |
| protected Model | $throughParent | Экземпляр родительской модели "через". | |
| protected Model | $farParent | Экземпляр удалённой родительской модели. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Отдалённый ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. | |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | |
| static protected int | $selfJoinCount | Количество самосоединений. |
Методы
| static void | macro(string $name, object|callable $macro) Зарегистрировать пользовательское макро. | from Macroable |
| static void | mixin(object $mixin) Смешать другой объект в класс. | 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) Создать новый экземпляр отношения "многие ко многим" через посредника. | |
| 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 = ['*']) Выполнить запрос как операцию "выбрать". | |
| 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 $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 |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить морф-отображение для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает таблично-ключевой массив из имен классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias) Получить модель, связанную с настраиваемым полиморфным типом. | from Relation |
| void | __clone() Вынудить клонирование базового конструктора запроса при клонировании. | from Relation |
| void | performJoin(Builder $query = null) Установить условие объединения в запросе. | |
| bool | throughParentSoftDeletes() Определить, использует ли родительская сущность "через" мягкие удаления. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | |
| Model | firstOrNew(array $attributes) Получить первую связанную модель, соответствующую атрибутам, или создать её. | |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первую связанную модель. | |
| Model|HasManyThrough | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу. | |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null) Получить разбиение на страницы для оператора "select". | |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Разбить на страницы заданный запрос с помощью простого разбиения на страницы. | |
| array | shouldSelect(array $columns = ['*']) Установить оператор выбора для запроса отношения. | |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на части. | |
| Generator | cursor() Получить генератор для данного запроса. | |
| bool | each(callable $callback, int $count = 1000) Выполнить обратный вызов для каждого элемента с чанкингом. | |
| Builder | prepareQueryBuilder(array $columns = ['*']) Подготовить билдер запроса для выполнения. | |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения к тому же таблице. | |
| string | getRelationCountHash() Получить хэш таблицы объединения отношения. | |
| string | getQualifiedFarKeyName() Получить квалифицированное имя внешнего ключа связанной модели. | |
| string | getQualifiedFirstKeyName() Получить квалифицированное имя внешнего ключа модели "через". | |
| string | getQualifiedForeignKeyName() Получить квалифицированное имя внешнего ключа связанной модели. | |
| string | getQualifiedLocalKeyName() Получить квалифицированное имя локального ключа родительской модели "дальше". |
Подробности
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin)
Смешать другую сущность в класс.
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.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полностью квалифицированное имя родительского ключа.
Model getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя колонки "создано в".
string updatedAt()
Получить имя колонки "обновлено в".
string relatedUpdatedAt()
Получить имя колонки "обновлено в" связанной модели.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить карту morph для полиморфных отношений.
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)
Создать словарь моделей, индексированный по внешнему ключу отношения.
Model firstOrNew(array $attributes)
Получить первую связанную запись модели, соответствующую атрибутам, или создать её.
Model updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Model|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или бросить исключение.
Model|Collection|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Collection findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Model|Collection findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или бросить исключение.
LengthAwarePaginator paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить пагинатор для оператора "select".
Paginator simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить результат запроса на страницы с использованием простого пагинатора.
protected array shouldSelect(array $columns = ['*'])
Установить предложение select для запроса отношения.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на куски.
Generator cursor()
Получить генератор для данного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента с разбивкой на куски.
protected Builder prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же столе.
string getRelationCountHash()
Получить хеш таблицы связи для подсчёта.
string getQualifiedFarKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле модели "через".
string getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле родительской модели "далеко".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.6/Illuminate/Database/Eloquent/Relations/HasManyThrough.html