HasOneThrough
class HasOneThrough extends HasManyThrough (View source)
Свойства
| SupportsDefaultModels | |
| ForwardsCalls | |
| 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 array | $morphMap | Массив для сопоставления имен классов с их именами морфизма в базе данных. | from Relation |
| protected Model | $throughParent | Экземпляр родительской модели "через". | from HasManyThrough |
| protected Model | $farParent | Экземпляр дальней родительской модели. | from HasManyThrough |
| protected string | $firstKey | Ближайший ключ в отношении. | from HasManyThrough |
| protected string | $secondKey | Дальний ключ в отношении. | from HasManyThrough |
| protected string | $localKey | Локальный ключ в отношении. | from HasManyThrough |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | from HasManyThrough |
| static protected int | $selfJoinCount | Количество самосоединений. | from HasManyThrough |
| protected Closure|array|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | from SupportsDefaultModels |
Методы
| 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) Создать новый экземпляр отношения "многие ко многим через". | from HasManyThrough |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений по отношению. | from Relation |
| void | addConstraints() Установить базовые ограничения по отношению запроса. | from HasManyThrough |
| void | addEagerConstraints(array $models) Установить ограничения для отложенной загрузки отношения. | from HasManyThrough |
| 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». | from HasManyThrough |
| 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 = ['*']) Добавить ограничения для запроса отношения. | from HasManyThrough |
| 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 HasManyThrough |
| Model | getRelated() Получить связанную модель отношения. | from Relation |
| string | createdAt() Получить имя столбца «создано в». | from Relation |
| string | updatedAt() Получить имя столбца «обновлено в». | from Relation |
| string | relatedUpdatedAt() Получить имя столбца «обновлено в» связанной модели. | from Relation |
| string | whereInMethod(Model $model, string $key) Получить имя метода «where in» для леничной загрузки. | из Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту morph для полиморфных отношений. | из Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создаёт массив с таблицами в качестве ключей из имён классов моделей. | из Relation |
| static string|null | getMorphedModel(string $alias) Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| void | __clone() Вынужденно клонировать базовый билдер запросов при клонировании. | из Relation |
| void | performJoin(Builder $query = null) Устанавливает условие объединения в запросе. | из HasManyThrough |
| bool | throughParentSoftDeletes() Определяет, использует ли «родитель» отношения «through» мягкие удаления. | из HasManyThrough |
| array | buildDictionary(Collection $results) Создаёт словарь модели, индексированный по внешнему ключу отношения. | из HasManyThrough |
| Model | firstOrNew(array $attributes) Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из HasManyThrough |
| Model | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasManyThrough |
| mixed | first(array $columns = ['*']) Выполнить запрос и получить первую связанную модель. | из HasManyThrough |
| Model|HasManyThrough | firstOrFail(array $columns = ['*']) Выполнить запрос и получить первый результат или выбросить исключение. | из HasManyThrough |
| Model|Collection|null | find(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу. | из HasManyThrough |
| Collection | findMany(mixed $ids, array $columns = ['*']) Найти несколько связанных моделей по их первичным ключам. | из HasManyThrough |
| Model|Collection | findOrFail(mixed $id, array $columns = ['*']) Найти связанную модель по её первичному ключу или выбросить исключение. | из HasManyThrough |
| LengthAwarePaginator | paginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null) Получить пагинатор для оператора «select». | из HasManyThrough |
| Paginator | simplePaginate(int $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null) Разбить заданный запрос на страницы с помощью простого пагинатора. | из HasManyThrough |
| array | shouldSelect(array $columns = ['*']) Установить оператор «select» для запроса отношения. | из HasManyThrough |
| bool | chunk(int $count, callable $callback) Разбить результаты запроса на куски. | из HasManyThrough |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null) Разбить результаты запроса на куски, сравнивая числовые идентификаторы. | из HasManyThrough |
| Generator | cursor() Получить генератор для данного запроса. | из HasManyThrough |
| bool | each(callable $callback, int $count = 1000) Выполнить обратный вызов над каждым элементом, разбивая результаты на куски. | из HasManyThrough |
| Builder | prepareQueryBuilder(array $columns = ['*']) Подготовить билдер запросов для выполнения запроса. | из HasManyThrough |
| Builder | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения в той же таблице. | из HasManyThrough |
| Builder | getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на том же столе, что и родительский через. | из HasManyThrough |
| строка | getRelationCountHash() Получить хеш таблицы объединения отношений. | из HasManyThrough |
| строка | getQualifiedFarKeyName() Получить квалифицированное внешнее ключевое поле связанной модели. | из HasManyThrough |
| строка | getFirstKeyName() Получить внешнее ключевое поле модели «через». | из HasManyThrough |
| строка | getQualifiedFirstKeyName() Получить квалифицированное внешнее ключевое поле модели «через». | из HasManyThrough |
| строка | getForeignKeyName() Получить внешнее ключевое поле связанной модели. | из HasManyThrough |
| строка | getQualifiedForeignKeyName() Получить квалифицированное внешнее ключевое поле связанной модели. | из HasManyThrough |
| строка | getLocalKeyName() Получить локальное ключевое поле модели дальнего родителя. | из HasManyThrough |
| строка | getQualifiedLocalKeyName() Получить квалифицированное локальное ключевое поле модели дальнего родителя. | из HasManyThrough |
| строка | getSecondLocalKeyName() Получить локальное ключевое поле модели-посредника. | из HasManyThrough |
| Модель | newRelatedInstanceFor(Модель $parent) Создать новую связанную экземпляр для заданной модели. | |
| $this | withDefault(Closure|array|bool $callback = true) Возвращает новый экземпляр модели в случае, если отношение не существует. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $parent) Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
Подробности
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)
Создать новый экземпляр отношения 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()
Получить отношение для жадной загрузки.
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 $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя ключа родительской модели.
Model getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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()
Определить, использует ли родительская сущность «через» мягкие удаления.
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 = ['*'])
Установить оператор выбора для запроса отношения.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на куски.
bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
Generator 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()
Получить локальное ключевое поле в промежуточной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвращает новый экземпляр модели в случае, если отношение не существует.
protected Модель|null getDefaultFor(Модель $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.8/Illuminate/Database/Eloquent/Relations/HasOneThrough.html