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