HasOneThrough
class HasOneThrough extends HasOneOrManyThrough (View source)
Свойства
| InteractsWithDictionary | |
| SupportsDefaultModels | |
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected TRelatedModel> | $query | Экземпляр Eloquent-строителя запросов. | из Relation |
| protected TDeclaringModel | $parent | Экземпляр родительской модели. | из Relation |
| protected TRelatedModel | $related | Экземпляр связанной модели. | из Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морфизмов в базе данных. | из Relation |
| static protected bool | $requireMorphMap | Предотвращает морфные отношения без карты морфизмов. | из Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | из Relation |
| protected TIntermediateModel | $throughParent | Экземпляр родительской модели "через". | из HasOneOrManyThrough |
| protected TDeclaringModel | $farParent | Экземпляр родительской модели "дальнего" уровня. | из HasOneOrManyThrough |
| protected string | $firstKey | Ближайший ключ в отношении. | из HasOneOrManyThrough |
| protected string | $secondKey | Дальний ключ в отношении. | из HasOneOrManyThrough |
| protected string | $localKey | Локальный ключ в отношении. | из HasOneOrManyThrough |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | из HasOneOrManyThrough |
| protected Closure|array|bool | $withDefault | Указывает, должен ли использоваться экземпляр модели по умолчанию. | из SupportsDefaultModels |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту. | из ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя. | из ForwardsCalls |
| static void | throwBadMethodCallException(string $method)
Выбросить исключение неверного вызова метода для заданного метода. | из ForwardsCalls |
| static void | macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро. | из Macroable |
| static void | mixin(object $mixin, bool $replace = true)
Смешать другой объект в класс. | из Macroable |
| static bool | hasMacro(string $name)
Проверяет, зарегистрировано ли макро. | из Macroable |
| static void | flushMacros()
Очистить существующие макросы. | из Macroable |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обработать вызовы к классу. | из Macroable |
| mixed | __call(string $method, array $parameters)
Динамически обработать вызовы к классу. | из Macroable |
| void | __construct(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Создать новый экземпляр связи has many через. | из HasOneOrManyThrough |
| static mixed | noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений по связи. | из Relation |
| void | addConstraints()
Установить основные ограничения запроса к связи. | из HasOneOrManyThrough |
| void | addEagerConstraints(array $models) Без описания | из HasOneOrManyThrough |
| TDeclaringModel> | initRelation(array $models, string $relation) Без описания | |
| TDeclaringModel> | match(array $models, Collection $results, string $relation) Без описания | |
| TResult | getResults() Без описания | |
| TRelatedModel> | getEager()
Получить отношение для ленивой загрузки. | из Relation |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная совпадающая запись. | из Relation |
| TRelatedModel> | get(array $columns = ['*']) Без описания | из HasOneOrManyThrough |
| void | touch()
Обновить все связанные модели для связи. | из Relation |
| int | rawUpdate(array $attributes = [])
Выполнить обновление в формате SQL против основного запроса. | из Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчета существования отношения. | из Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Без описания | из HasOneOrManyThrough |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношений. | из Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| TRelatedModel> | getRelationQuery()
Получить экземпляр билдера запроса, содержащего ограничения для связи. | из Relation |
| TRelatedModel> | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent. | из Relation |
| Builder | toBase()
Получить экземпляр базового билдера запроса. | из Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской записи. | from HasOneOrManyThrough |
| TRelatedModel | getRelated()
Получить связанную модель отношения. | from Relation |
| string | createdAt()
Получить имя столбца "created at". | from Relation |
| string | updatedAt()
Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели. | from Relation |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки заданного набора ключей моделей. | from Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager loading. | from Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Предотвратить использование полиморфных отношений без сопоставления моделей. | from Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | from Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить morph map для полиморфных отношений и потребовать, чтобы все модели с morph были явно сопоставлены. | from Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить morph map для полиморфных отношений. | from Relation |
| static array|null | buildMorphMapFromModels(array|null $models = null)
Создает таблично-ключевой массив из имен классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | from Relation |
| static int|string | getMorphAlias(string $className)
Получить алиас, связанный с пользовательским полиморфным классом. | from Relation |
| void | __clone()
Принудительно клонировать подлежащий запрос при клонировании. | from Relation |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря, при необходимости преобразовав его в строку. | from InteractsWithDictionary |
| void | performJoin(Builder|null $query = null)
Установить предложение join в запросе. | from HasOneOrManyThrough |
| bool | throughParentSoftDeletes()
Определить, использует ли родительская модель "через" Soft Deletes. | from HasOneOrManyThrough |
| $this | withTrashedParents()
Указать, что в запросе должны быть включены удаленные родительские модели "через". | from HasOneOrManyThrough |
| TRelatedModel[][] | buildDictionary(Collection $results)
Создает словарь моделей, индексированный по внешнему ключу отношения. | from HasOneOrManyThrough |
| TRelatedModel | firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующей атрибутам, или создать новую. | from HasOneOrManyThrough |
| TRelatedModel | firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её. | from HasOneOrManyThrough |
| TRelatedModel | createOrFirst(array $attributes = [], array $values = [])
Попробовать создать запись. Если возникает нарушение уникального ограничения, попытаться найти соответствующую запись. | from HasOneOrManyThrough |
| TRelatedModel | updateOrCreate(array $attributes, array $values = [])
Создать или обновить запись связанной модели, соответствующей атрибутам, и заполнить её значениями. | from HasOneOrManyThrough |
| TRelatedModel|null | firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where к запросу и вернуть первый результат. | from HasOneOrManyThrough |
| TRelatedModel|null | first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель. | from HasOneOrManyThrough |
| TRelatedModel | firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат, иначе выбросить исключение. | from HasOneOrManyThrough |
| firstOr($columns = ['*'], Closure|null $callback = null) Нет описания | из HasOneOrManyThrough | |
| find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу. | из HasOneOrManyThrough | |
| TRelatedModel> | findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам. | из HasOneOrManyThrough |
| findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение. | из HasOneOrManyThrough | |
| findOr($id, $columns = ['*'], Closure|null $callback = null) Нет описания | из HasOneOrManyThrough | |
| LengthAwarePaginator | paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить пагинатор для оператора "select". | из HasOneOrManyThrough |
| Paginator | simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить заданный запрос на страницы с помощью простого пагинатора. | из HasOneOrManyThrough |
| CursorPaginator | cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = null)
Разбить заданный запрос на страницы с помощью пагинатора курсора. | из HasOneOrManyThrough |
| array | shouldSelect(array $columns = ['*'])
Установить предложение select для запроса отношения. | из HasOneOrManyThrough |
| bool | chunk(int $count, callable $callback)
Разбить результаты запроса на части. | из HasOneOrManyThrough |
| bool | chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса, сравнивая числовые ID. | из HasOneOrManyThrough |
| bool | chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса, сравнивая ID в нисходящем порядке. | из HasOneOrManyThrough |
| bool | eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов для каждого элемента при разбиении на части по ID. | из HasOneOrManyThrough |
| TRelatedModel> | cursor()
Получить генератор для заданного запроса. | из HasOneOrManyThrough |
| bool | each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента при разбиении на части. | из HasOneOrManyThrough |
| TRelatedModel> | lazy(int $chunkSize = 1000)
Запрос лениво, частями заданного размера. | из HasOneOrManyThrough |
| TRelatedModel> | lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивый запрос, разбивая результаты запроса на части, сравнивая ID. | из HasOneOrManyThrough |
| TRelatedModel> | lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивый запрос, разбивая результаты запроса на части, сравнивая ID в нисходящем порядке. | из HasOneOrManyThrough |
| TRelatedModel> | prepareQueryBuilder(array $columns = ['*'])
Подготовить построитель запросов для выполнения запроса. | из HasOneOrManyThrough |
| TRelatedModel> | getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице. | из HasOneOrManyThrough |
| TRelatedModel> | getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения в той же таблице, что и родительский через. | из HasOneOrManyThrough |
| $this | take(int $value)
Псевдоним для установки значения "limit" запроса. | из HasOneOrManyThrough |
| $this | limit(int $value)
Установить значение "limit" запроса. | из HasOneOrManyThrough |
| string | getQualifiedFarKeyName()
Получить квалифицированный внешний ключ в связанной модели. | из HasOneOrManyThrough |
| string | getFirstKeyName()
Получить внешний ключ в модели "through". | из HasOneOrManyThrough |
| string | getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле для модели "через". | из HasOneOrManyThrough |
| string | getForeignKeyName()
Получить внешнее ключевое поле для связанной модели. | из HasOneOrManyThrough |
| string | getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле для связанной модели. | из HasOneOrManyThrough |
| string | getLocalKeyName()
Получить локальное ключевое поле для родительской модели дальнего уровня. | из HasOneOrManyThrough |
| string | getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле для родительской модели дальнего уровня. | из HasOneOrManyThrough |
| string | getSecondLocalKeyName()
Получить локальное ключевое поле для промежуточной модели. | из HasOneOrManyThrough |
| TRelatedModel | newRelatedInstanceFor(Model $parent)
Создать новый экземпляр связанной модели для данной модели. | |
| $this | withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае, если отношение отсутствует. | из SupportsDefaultModels |
| Model|null | getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения. | из SupportsDefaultModels |
Подробности
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода к заданному объекту.
protected mixed forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода к заданному объекту, возвращая $this, если перенаправленный вызов вернул себя.
static protected void throwBadMethodCallException(string $method)
Выбросить исключение BadMethodCallException для заданного метода.
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательское макро.
static void mixin(object $mixin, bool $replace = true)
Добавить другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрировано ли макро.
static void flushMacros()
Очистить существующие макросы.
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 through.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений на связи.
void addConstraints()
Установить базовые ограничения на запрос связи.
void addEagerConstraints(array $models)
Без описания
TDeclaringModel> initRelation(array $models, string $relation)
Без описания
TDeclaringModel> match(array $models, Collection $results, string $relation)
Без описания
TResult getResults()
Без описания
TRelatedModel> getEager()
Получить отношение для ленивой загрузки.
TRelatedModel sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
TRelatedModel> get(array $columns = ['*'])
Без описания
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить сырое обновление с базовым запросом.
TRelatedModel> getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта отношения.
TRelatedModel> getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Без описания
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы соединения отношения.
protected array<int,int|string> getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected TRelatedModel> getRelationQuery()
Получить генератор запросов, который будет содержать ограничения отношения.
TRelatedModel> getQuery()
Получить основной запрос для отношения.
Builder getBaseQuery()
Получить базовый генератор запросов, управляющий генератором Eloquent.
Builder toBase()
Получить экземпляр базового генератора запросов.
TDeclaringModel getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
TRelatedModel getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение whereIn для загрузки заданного набора идентификаторов моделей.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager loading.
static void requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определить morph map для полиморфных отношений и потребовать явного сопоставления всех моделей-получателей.
static array morphMap(array|null $map = null, bool $merge = true)
Установить или получить morph map для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array|null $models = null)
Создаёт таблично-индексированный массив из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
static int|string getMorphAlias(string $className)
Получить алиас, связанный с пользовательским классом полиморфной модели.
void __clone()
Принудительно клонировать базовый объект-построитель запроса при клонировании.
protected mixed getDictionaryKey(mixed $attribute)
Получить атрибут словаря ключей - при необходимости привести его к строке.
protected void performJoin(Builder|null $query = null)
Установить условие объединения в запросе.
bool throughParentSoftDeletes()
Определить, использует ли родитель отношения "through" мягкие удаления.
$this withTrashedParents()
Указать, что в запросе следует включать и удалённых родителей "through".
protected TRelatedModel[][] buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу отношения.
TRelatedModel firstOrNew(array $attributes = [], array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать новую.
TRelatedModel firstOrCreate(array $attributes = [], array $values = [])
Получить первую запись, соответствующую атрибутам. Если запись не найдена, создать её.
TRelatedModel createOrFirst(array $attributes = [], array $values = [])
Попытка создать запись. Если произойдет нарушение уникального ограничения, будет выполнена попытка найти соответствующую запись.
TRelatedModel updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
TRelatedModel|null firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие WHERE к запросу и вернуть первый результат.
TRelatedModel|null first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
TRelatedModel firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
firstOr($columns = ['*'], Closure|null $callback = null)
Без описания
find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
TRelatedModel> findMany(Arrayable|array $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
findOr($id, $columns = ['*'], Closure|null $callback = null)
Без описания
LengthAwarePaginator paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int $page = null)
Получить постраничный вывод для запроса "select".
Paginator simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
Разбить заданный запрос на страницы с помощью простого постраничного вывода.
CursorPaginator cursorPaginate(int|null $perPage = null, array $columns = ['*'], string $cursorName = 'cursor', string|null $cursor = null)
Разбить заданный запрос на страницы с помощью постраничного вывода с указанием курсора.
protected array shouldSelect(array $columns = ['*'])
Установить предложение select для запроса отношения.
bool chunk(int $count, callable $callback)
Разбить результаты запроса на куски.
bool chunkById(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
bool chunkByIdDesc(int $count, callable $callback, string|null $column = null, string|null $alias = null)
Разбить результаты запроса по ID в порядке убывания.
bool eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить коллбек для каждого элемента, разделяя по ID.
TRelatedModel> cursor()
Получить генератор для данного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить коллбек для каждого элемента, разделяя по частям.
TRelatedModel> lazy(int $chunkSize = 1000)
Выполнить запрос лениво, по частям заданного размера.
TRelatedModel> lazyById(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивый запрос, разделяя результаты запроса по ID.
TRelatedModel> lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивый запрос, разделяя результаты запроса по ID в порядке убывания.
protected TRelatedModel> prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
TRelatedModel> getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
TRelatedModel> getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса связи на том же столе, что и через родительский.
$this take(int $value)
Псевдоним для установки значения "limit".
$this limit(int $value)
Установить значение "limit" запроса.
string getQualifiedFarKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getFirstKeyName()
Получить ключевое поле на модели "через".
string getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле на модели "через".
string getForeignKeyName()
Получить внешнее ключевое поле связанной модели.
string getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели.
string getLocalKeyName()
Получить локальное ключевое поле на родительской модели дальнего родителя.
string getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле на родительской модели дальнего родителя.
string getSecondLocalKeyName()
Получить локальное ключевое поле на промежуточной модели.
TRelatedModel newRelatedInstanceFor(Model $parent)
Создать новый связанный экземпляр для заданной модели.
$this withDefault(Closure|array|bool $callback = true)
Возвратить новый экземпляр модели в случае, если отношение не существует.
protected Model|null getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/HasOneThrough.html