HasManyThrough
class HasManyThrough extends Relation (View source)
Свойства
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent-билдера запросов. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый булево | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический защищённый массив | $morphMap | Массив для сопоставления имён классов с их именами морфизма в базе данных. | из Relation |
| защищённый Model | $throughParent | Экземпляр родительской модели "через". | |
| защищённый Model | $farParent | Экземпляр удалённой родительской модели. | |
| защищённый строка | $firstKey | Ближайший ключ к отношению. | |
| защищённый строка | $secondKey | Отдалённый ключ к отношению. | |
| защищённый строка | $localKey | Локальный ключ к отношению. |
| protected string | $secondLocalKey | Локальный ключ на промежуточной модели. |
Методы
| 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) Создать новый экземпляр отношения 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 $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий билдером Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| строка | getQualifiedParentKeyName() Получить полное квалифицированное имя родительского ключа. | |
| Модель | getRelated() Получить связанную модель отношения. | из Отношение |
| строка | createdAt() Получить имя столбца "создано в". | из Отношение |
| строка | updatedAt() Получить имя столбца "обновлено в". | из Отношение |
| строка | relatedUpdatedAt() Получить имя столбца "обновлено в" связанной модели. | из Отношение |
| статический массив | morphMap(массив $map = null, bool $merge = true) Установить или получить карту morph для полиморфных отношений. | из Отношение |
| статический массив|null | buildMorphMapFromModels(массив $models = null) Создает массив с таблицами по именам классов моделей. | из Отношение |
| статическая строка|null | getMorphedModel(строка $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Отношение |
| 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 = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. |
| Модель|Коллекция|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу. | |
| Коллекция | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | |
| Модель|Коллекция | 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) Разбить заданный запрос на страницы с помощью простого пагинатора. | |
| массив | shouldSelect(array $columns = ['*']) Установить предложение select для запроса к связи. | |
| строка | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе «has». | |
| строка | getQualifiedFarKeyName() Получить квалифицированный внешний ключ связанной модели. |
| строка | getQualifiedForeignKeyName() Получить квалифицированное внешнее ключевое поле в связанной модели. | |
| строка | getQualifiedFirstKeyName() Получить квалифицированное внешнее ключевое поле в модели "через". |
Подробности
статический void macro(строка $name, объект|вызываемый $macro)
Зарегистрировать пользовательское макрос.
статический void mixin(объект $mixin)
Смешать другой объект в класс.
статический булево hasMacro(строка $name)
Проверяет, зарегистрировано ли макрос.
статический смешанный __callStatic(строка $method, массив $parameters)
Динамически обработать вызовы к классу.
mixed __call(string $method, array $parameters)
Динамически обрабатывает вызовы класса.
void __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Создает новый экземпляр связи "многие ко многим через" (has many through).
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()
Получить результаты связи.
Коллекция getEager()
Получить отношение для ленивой загрузки.
Коллекция 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 $key = null)
Получить все первичные ключи для массива моделей.
Билдер getQuery()
Получить основное запрошенное выражение для связи.
Билдер getBaseQuery()
Получить базовое конструктор запроса, управляющего конструктором Eloquent.
Модель getParent()
Получить родительскую модель связи.
строка getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель связи.
строка createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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)
Получить первую запись связанной модели, соответствующую атрибутам, или создать новую.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
смешанный тип 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 $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 для запроса отношения.
string getExistenceCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
string getQualifiedFarKeyName()
Получить полное имя внешнего ключа на связанной модели.
string getQualifiedForeignKeyName()
Получить полное имя внешнего ключа на связанной модели.
string getQualifiedFirstKeyName()
Получить полное имя внешнего ключа на модели "через".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Relations/HasManyThrough.html