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)
Перенаправить вызов метода на заданный объект. | из 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 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)
Создать новый экземпляр отношения «имеет много через». | из 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 |
| 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 |
| array | getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей. | из Relation |
| Builder | getQuery()
Получить базовый запрос для отношения. | из Relation |
| Builder | getBaseQuery()
Получить базовый построитель запросов, управляющий построителем Eloquent. | из Relation |
| Model | getParent()
Получить родительскую модель отношения. | из Relation |
| string | getQualifiedParentKeyName()
Получить полное имя родительского ключа. | из HasManyThrough |
| Model | getRelated()
Получить связанную модель отношения. | из Relation |
| string | createdAt()
Получить имя столбца "создано в". | из Relation |
| string | updatedAt()
Получить имя столбца "обновлено в". | из Relation |
| string | relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели. | из Relation |
| string | whereInMethod(Model $model, string $key)
Получить имя метода «where in» для леничной загрузки. | из 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 |
| void | performJoin(Builder $query = null)
Установить условие объединения в запросе. | из HasManyThrough |
| bool | throughParentSoftDeletes()
Определить, использует ли родительский элемент «через» в отношении мягкие удаления. | из HasManyThrough |
| array | buildDictionary(Collection $results)
Построить словарь модели, индексированный по внешнему ключу отношения. | из HasManyThrough |
| Model | firstOrNew(array $attributes)
Получить первую запись связанной модели, соответствующую атрибутам, или создать её. | из HasManyThrough |
| Model | updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | из HasManyThrough |
| Model|HasManyThrough | firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить основное условие where к запросу и вернуть первый результат. | из 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|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 |
| 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 |
| string | getRelationCountHash()
Получить хэш таблицы соединения отношений. | из HasManyThrough |
| string | getQualifiedFarKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели. | из HasManyThrough |
| string | getFirstKeyName()
Получить внешнее ключевое поле модели «через». | из HasManyThrough |
| string | getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключевое поле модели «через». | из HasManyThrough |
| string | getForeignKeyName()
Получить внешнее ключевое поле связанной модели. | из HasManyThrough |
| string | getQualifiedForeignKeyName()
Получить квалифицированное внешнее ключевое поле связанной модели. | из HasManyThrough |
| string | getLocalKeyName()
Получить локальное ключевое поле родительской модели «далеко». | из HasManyThrough |
| string | getQualifiedLocalKeyName()
Получить квалифицированное локальное ключевое поле родительской модели «далеко». | из HasManyThrough |
| string | getSecondLocalKeyName()
Получить локальное ключевое поле промежуточной модели. | из HasManyThrough |
| Model | 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)
Переадресовать вызов метода заданному объекту.
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 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)
Создать новый экземпляр отношения has many through.
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 = [])
Выполнить операции rawUpdate над базовым запросом.
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()
Определить, использует ли родительский элемент связи Soft Deletes.
protected array buildDictionary(Collection $results)
Создать словарь моделей, индексированный по внешнему ключу связи.
Модель firstOrNew(array $attributes)
Получить первую связанную запись модели, соответствующую атрибутам, или создать новую.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями.
Модель|HasManyThrough firstWhere(Closure|string|array $column, mixed $operator = null, mixed $value = null, string $boolean = 'and')
Добавить базовое условие where в запрос и вернуть первый результат.
mixed first(array $columns = ['*'])
Выполнить запрос и получить первую связанную модель.
Модель|HasManyThrough firstOrFail(array $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение.
Модель|Коллекция|null find(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу.
Коллекция findMany(mixed $ids, array $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(mixed $id, array $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
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)
Разбить заданный запрос на страницы с помощью простого пагинатора.
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)
Разбить результаты запроса на куски по численным идентификаторам.
Генератор cursor()
Получить генератор для данного запроса.
bool each(callable $callback, int $count = 1000)
Выполнить обратный вызов для каждого элемента, разбивая по кускам.
protected Билдер prepareQueryBuilder(array $columns = ['*'])
Подготовить билдер запроса для выполнения.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения на том же таблице.
Билдер getRelationExistenceQueryForThroughSelfRelation(Билдер $query, Билдер $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/6.x/Illuminate/Database/Eloquent/Relations/HasOneThrough.html