HasManyThrough
class HasManyThrough extends Relation (View source)
Свойства
| protected Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| static protected array | $morphMap | Массив для сопоставления имен классов с их именами морф в базе данных. | из Relation |
| protected Model | $farParent | Экземпляр родительской модели на отдаленном уровне. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Отдаленный ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. |
Методы
| void | __construct(Builder $query, Model $farParent, Model $parent, string $firstKey, string $secondKey, string $localKey) Создать новый экземпляр отношения has many through. | |
| 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 |
| void | touch() Обновить метку времени последнего изменения для всех связанных моделей отношения. | из Relation |
| int | rawUpdate(array $attributes = []) Выполнить обновление по базовому запросу. | из Relation |
| Builder | getRelationCountQuery(Builder $query, Builder $parent) Добавить ограничения для запроса подсчета отношения. | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений на отношение. | из Relation |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery() Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий билдером Eloquent. | из Relation |
| Model | getParent() Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName() Получить полное имя родительского ключа. | из Relation |
| Model | getRelated() Получить связанную модель отношения. | из Relation |
| string | createdAt() Получить имя столбца «created at». | из Relation |
| string | updatedAt() Получить имя столбца «updated at». | из Relation |
| string | relatedUpdatedAt() Получить имя столбца «updated at» связанной модели. | из Relation |
| string | wrap(string $value) Обернуть заданное значение с помощью грамматики родительского запроса. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту морфизма для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создает массив таблиц по именам классов моделей. | из Relation |
| mixed | __call(string $method, array $parameters) Обработать вызов динамического метода для отношения. | из Relation |
| void | __clone() Принудительно клонировать базовый билдер запроса при клонировании. | из Relation |
| void | setJoin(Builder $query = null) Установить условие соединения в запросе. | |
| bool | parentSoftDeletes() Определить, использует ли родительское отношение мягкие удаления. | |
| array | buildDictionary(Collection $results) Создать словарь моделей, индексированный по внешнему ключу отношения. | |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первую связанную модель. | |
| Model|HasManyThrough | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или бросить исключение. | |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по ее первичному ключу. | |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. |
| Модель|Коллекция | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | |
| Коллекция | get(array $columns = ['*']) Выполнить запрос как операцию «select». | |
| массив | getSelectColumns(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') Разбить результат запроса на страницы с помощью простого пагинатора. | |
| строка | getHasCompareKey() Получить ключ для сравнения с родительским ключом в запросе «has». | |
| строка | getForeignKey() Получить квалифицированный внешний ключ связанной модели. | |
| строка | getThroughKey() Получить квалифицированный внешний ключ модели «через». |
Подробности
void __construct(Builder $query, Model $farParent, Model $parent, string $firstKey, string $secondKey, string $localKey)
Создать новый экземпляр отношения many-to-many через посредника.
void addConstraints()
Установить базовые ограничения для запроса отношения.
void addEagerConstraints(array $models)
Установить ограничения для ленивой загрузки отношения.
массив initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
массив match(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с помощью ленивой загрузки результаты с их родителями.
смешанный getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для ленивой загрузки.
void touch()
Обновить метку времени всех связанных моделей для отношения.
целое число rawUpdate(array $attributes = [])
Выполнить сырое обновление в базе данных по основному запросу.
Builder getRelationCountQuery(Builder $query, Builder $parent)
Добавить ограничения для запроса подсчёта отношения.
статический смешанный noConstraints(Closure $callback)
Выполнить обратный вызов с отключенными ограничениями для отношения.
защищенный массив getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
строка getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
строка createdAt()
Получить имя столбца «создано в».
строка updatedAt()
Получить имя столбца «обновлено в».
строка relatedUpdatedAt()
Получить имя столбца «обновлено в» связанной модели.
строка wrap(строка $value)
Оборачивание заданного значения с помощью грамматики родительского запроса.
статический массив morphMap(массив $map = null, bool $merge = true)
Установить или получить морф-отображение для полиморфных отношений.
статический защищённый массив|null buildMorphMapFromModels(массив $models = null)
Строит таблично-индексированный массив из имён классов моделей.
смешанный __call(строка $method, массив $parameters)
Обработка динамических вызовов методов отношения.
пусто __clone()
Принудительное клонирование базового генератора запросов при клонировании.
защищённый пусто setJoin(Генератор $query = null)
Установка условия соединения в запросе.
логический parentSoftDeletes()
Определение, использует ли родительское отношение мягкие удаления.
защищённый массив buildDictionary(Коллекция $results)
Строит словарь моделей, индексированный по внешнему ключу отношения.
смешанный first(массив $columns = ['*'])
Выполнение запроса и получение первой связанной модели.
Модель|HasManyThrough firstOrFail(массив $columns = ['*'])
Выполнение запроса и получение первого результата или возбуждение исключения.
Модель|Коллекция|null find(смешанный $id, массив $columns = ['*'])
Поиск связанной модели по первичному ключу.
Коллекция findMany(смешанный $ids, массив $columns = ['*'])
Поиск нескольких связанных моделей по первичным ключам.
Модель|Коллекция findOrFail(смешанный $id, массив $columns = ['*'])
Поиск связанной модели по первичному ключу или возбуждение исключения.
Коллекция get(массив $columns = ['*'])
Выполнение запроса в качестве оператора «выбор».
защищённый массив getSelectColumns(массив $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')
Разбить результат запроса на страницы с помощью простого пагинатора.
string getHasCompareKey()
Получить ключ для сравнения с родительским ключом в запросе "has".
string getForeignKey()
Получить квалифицированный внешний ключ связанной модели.
string getThroughKey()
Получить квалифицированный внешний ключ модели "through".
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.1/Illuminate/Database/Eloquent/Relations/HasManyThrough.html