HasManyThrough
класс HasManyThrough расширяет Relation (View source)
Трейты
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные макросы строк. | from Macroable |
| protected Builder | $query | Экземпляр Eloquent билдера запросов. | from Relation |
| protected Model | $parent | Экземпляр родительской модели. | from Relation |
| protected Model | $related | Экземпляр связанной модели. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | from Relation |
| static protected array | $morphMap | Массив для сопоставления имён классов с их именами морфинг в базе данных. | from Relation |
| protected Model | $throughParent | Экземпляр родительской модели «через». | |
| protected Model | $farParent | Экземпляр удалённой родительской модели. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Удалённый ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. |
Методы
| static void | macro(string $name, callable $macro) Зарегистрировать пользовательское макро. | 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) Создать новый экземпляр связи 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 |
| 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() Получить полное имя родительского ключа. | from Relation |
| Модель | getRelated() Получить связанную модель отношения. | из Отношение |
| строка | createdAt() Получить имя столбца "created at". | из Отношение |
| строка | updatedAt() Получить имя столбца "updated at". | из Отношение |
| строка | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | из Отношение |
| статический массив | morphMap(массив $map = null, булево $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 = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | |
| Коллекция | get(array $columns = ['*']) Выполнить запрос как операцию "select". | |
| 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() Получить квалифицированное внешнее ключевое поле модели "через" (through). |
Подробности
статический void macro(string $name, callable $macro)
Зарегистрировать пользовательское макро.
статический bool hasMacro(string $name)
Проверяет, зарегистрировано ли макро.
статический смешанный __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)
Создает новый экземпляр связи many-to-many через посредника.
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()
Получить отношение для леничной загрузки.
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()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели.
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 = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Модель|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или сгенерировать исключение.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
Коллекция get(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.4/Illuminate/Database/Eloquent/Relations/HasManyThrough.html