HasOneThrough
класс HasOneThrough расширяет HasManyThrough (View source)
Трейты
| SupportsDefaultModels | |
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морфирования в базе данных. | из Relation |
| защищённый Model | $throughParent | Экземпляр родительской модели "через". | из HasManyThrough |
| защищённый Model | $farParent | Экземпляр далёкой родительской модели. | из HasManyThrough |
| защищённый строка | $firstKey | Ближайший ключ по отношению. | из HasManyThrough |
| защищённый строка | $secondKey | Далёкий ключ по отношению. | из HasManyThrough |
| защищённый строка | $localKey | Локальный ключ по отношению. | из HasManyThrough |
| защищённый строка | $secondLocalKey | Локальный ключ промежуточной модели. | из HasManyThrough |
| статический защищённый целое | $selfJoinCount | Количество самосоединений. | из HasManyThrough |
| защищённый Closure|массив|bool | $withDefault | Указывает, следует ли использовать экземпляр модели по умолчанию. | из 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|null $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)
Установить или получить морф-отображение для полиморфных отношений. | из 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 |
| $this | withTrashedParents()
Указать, что удаленные родительские элементы "через" должны быть включены в запрос. | из 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(Arrayable|array $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)
Выбросить исключение плохого вызова метода для данного метода.
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 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 = ['*'])
Выполнить запрос как операцию «выбор».
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|null $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Model getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" для связанной модели.
protected string whereInMethod(Модель $model, string $key)
Получить имя метода "where in" для леничной загрузки.
static array morphMap(array $map = null, bool $merge = true)
Установить или получить отображение morph для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создает таблично-индексированный массив из имен классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый билдер запроса при клонировании.
protected void performJoin(Билдер $query = null)
Установить условие объединения в запросе.
bool throughParentSoftDeletes()
Определить, использует ли родительская сущность "через" мягкое удаление.
$this withTrashedParents()
Указать, что в запросе должны быть включены удаленные родительские сущности "через".
protected array buildDictionary(Коллекция $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(Arrayable|массив $ids, массив $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Коллекция findOrFail(смешанный $id, массив $columns = ['*'])
Найти связанную модель по её первичному ключу или выбросить исключение.
LengthAwarePaginator paginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое $page = null)
Получить пагинатор для оператора «select».
Paginator simplePaginate(целое|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', целое|null $page = null)
Разбить на страницы заданный запрос в простой пагинатор.
protected массив shouldSelect(массив $columns = ['*'])
Установить оператор «select» для запроса связи.
логическое chunk(целое $count, вызовОбработки $callback)
Разбить результаты запроса на куски.
логическое chunkById(целое $count, вызовОбработки $callback, строка|null $column = null, строка|null $alias = null)
Разбить результаты запроса на куски по числовым идентификаторам.
Генератор cursor()
Получить генератор для заданного запроса.
логическое each(вызовОбработки $callback, целое $count = 1000)
Выполнить вызовОбработки над каждым элементом с помощью разбиения на куски.
protected Builder prepareQueryBuilder(массив $columns = ['*'])
Подготовить конструктор запроса для выполнения запроса.
Builder getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, массив|смешанный $columns = ['*'])
Добавить ограничения для запроса связи на том же столе.
Builder getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, массив|смешанный $columns = ['*'])
Добавить ограничения для запроса связи на том же столе, что и родительский через.
строка getRelationCountHash()
Получить хеш связанной таблицы join.
строка getQualifiedFarKeyName()
Получить квалифицированное внешнее ключи на связанной модели.
строка getFirstKeyName()
Получить внешний ключ на модели «через».
строка getQualifiedFirstKeyName()
Получить квалифицированное внешнее ключи на модели «через».
строка 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/7.x/Illuminate/Database/Eloquent/Relations/HasOneThrough.html