HasOneOrManyThrough
абстрактный класс HasOneOrManyThrough расширяет Relation (View source)
Свойства
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | from Macroable |
| protected TRelatedModel> | $query | Экземпляр Eloquent-строителя запросов. | from Relation |
| protected TDeclaringModel | $parent | Экземпляр родительской модели. | from Relation |
| protected TRelatedModel | $related | Экземпляр связанной модели. | from Relation |
| protected bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | from Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | from Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морфированных данных в базе данных. | from Relation |
| static protected bool | $requireMorphMap | Запрещает морф взаимосвязи без морф-мапы. | from Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | from Relation |
| protected TIntermediateModel | $throughParent | Экземпляр родительской модели "через". | |
| protected TDeclaringModel | $farParent | Экземпляр удалённой родительской модели. | |
| protected string | $firstKey | Ближайший ключ в отношении. | |
| protected string | $secondKey | Удаленный ключ в отношении. | |
| protected string | $localKey | Локальный ключ в отношении. | |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. |
Методы
| mixed | forwardCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту. | from ForwardsCalls |
| mixed | forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Перенаправить вызов метода заданному объекту, вернув $this, если перенаправленный вызов вернул себя. | 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 void | flushMacros()
Очистить существующие макросы. | from Macroable |
| статический смешанный | __callStatic(строка $метод, массив $параметры)
Динамическая обработка вызовов класса. | из Macroable |
| смешанный | __call(строка $метод, массив $параметры)
Динамическая обработка вызовов класса. | из Macroable |
| void | __construct(Builder $запрос, Model $предок, Model $черезПредка, строка $первыйКлюч, строка $второйКлюч, строка $локальныйКлюч, строка $второйЛокальныйКлюч)
Создание нового экземпляра связи many-to-many через посредника. | |
| статический смешанный | noConstraints(Closure $обратныйВызов)
Выполнение обратного вызова без ограничений для связи. | из Relation |
| void | addConstraints()
Установление основных ограничений для запроса связи. | |
| void | addEagerConstraints(массив $модели) Без описания | |
| TDeclaringModel> | initRelation(массив $модели, строка $связь)
Инициализация связи для набора моделей. | из Relation |
| TDeclaringModel> | match(array $models, Collection $results, string $relation)
Сопоставить загруженные с жадностью результаты с их родителями. | from Relation |
| TResult | getResults()
Получить результаты отношения. | from Relation |
| TRelatedModel> | getEager()
Получить отношение для жадной загрузки. | from Relation |
| TRelatedModel | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | from Relation |
| TRelatedModel> | get(array $columns = ['*']) Описание отсутствует | |
| void | touch()
Обновить все связанные модели для отношения. | from Relation |
| int | rawUpdate(array $attributes = [])
Выполнить сырое обновление по базовому запросу. | from Relation |
| TRelatedModel> | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта связи. | from Relation |
| TRelatedModel> | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Описание отсутствует | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы соединения для связи. | from Relation |
| array<int,int|string> | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | from Relation |
| TRelatedModel> | getRelationQuery()
Получить конструктор запроса, содержащий ограничения связи. | from Relation |
| TRelatedModel> | getQuery()
Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent. | from Relation |
| Builder | toBase()
Получить экземпляр базового билдера запроса. | from Relation |
| TDeclaringModel | getParent()
Получить родительскую модель отношения. | from Relation |
| string | getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской таблицы. | |
| 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" для жадной загрузки. | from Relation |
| static void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | from Relation |
| static bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | from Relation |
| static array | enforceMorphMap(array $map, bool $merge = true)
Определить сопоставление морф для полиморфных отношений и потребовать, чтобы все модели, к которым применяется морфинг, были явно сопоставлены. | from Relation |
| static array | morphMap(array|null $map = null, bool $merge = true)
Установить или получить сопоставление морф для полиморфных отношений. | from Relation |
| статический массив|null | buildMorphMapFromModels(массив|null $models = null)
Создаёт массив, индексированный по таблицам, из имён классов моделей. | из Relation |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Relation |
| статический int|строка | getMorphAlias(строка $className)
Получить псевдоним, связанный с пользовательским полиморфным классом. | из Relation |
| void | __clone()
Принудительно клонирует подлежащий клона query builder при клонировании. | из Relation |
| смешанный тип | getDictionaryKey(смешанный тип $attribute)
Получить атрибут ключа словаря — при необходимости преобразовав его в строку. | из InteractsWithDictionary |
| void | performJoin(Builder|null $query = null)
Установить условие объединения в запросе. | |
| bool | throughParentSoftDeletes()
Определяет, использует ли родительская сущность «через» мягкое удаление. | |
| $this | withTrashedParents()
Указывает, что в запросе должны быть включены удалённые родительские сущности «через». |
| 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)
Разбить на страницы заданный запрос с использованием разбиения на страницы с курсором. | |
| array | shouldSelect(array $columns = ['*'])
Установить условие выбора для запроса к отношению. | |
| 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)
Разбить результаты запроса по идентификаторам в порядке убывания. | |
| bool | eachById(callable $callback, int $count = 1000, string|null $column = null, string|null $alias = null)
Выполнить обратный вызов над каждым элементом, разбивая по идентификатору. | |
| 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)
Ленивый запрос, разбивая результаты запроса по идентификаторам. | |
| TRelatedModel> | lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Ленивый запрос, разбивая результаты запроса по идентификаторам в порядке убывания. | |
| 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()
Получить локальное ключевое поле родительской модели «далеко». |
| строка | getQualifiedLocalKeyName()
Получить квалифицированное локальное имя ключа на родительской модели. | |
| строка | getSecondLocalKeyName()
Получить локальное имя ключа на промежуточной модели. |
Подробности
protected смешанный forwardCallTo(смешанный $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту.
protected смешанный forwardDecoratedCallTo(смешанный $object, строка $method, массив $parameters)
Перенаправить вызов метода заданному объекту, возвращая $this, если перенаправленный вызов вернул себя.
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 void flushMacros()
Очистить существующие макросы.
статический смешанный __callStatic(строка $method, массив $parameters)
Динамически обрабатывает вызовы к классу.
смешанный __call(строка $method, массив $parameters)
Динамически обрабатывает вызовы к классу.
пустое значение __construct(Builder $query, Model $farParent, Model $throughParent, строка $firstKey, строка $secondKey, строка $localKey, строка $secondLocalKey)
Создать новый экземпляр связи has many through.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений на связи.
void addConstraints()
Установить базовые ограничения на запрос к связи.
void addEagerConstraints(array $models)
Описание отсутствует
abstract TDeclaringModel> initRelation(array $models, string $relation)
Инициализировать связь для набора моделей.
abstract TDeclaringModel> match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты с их родительскими элементами.
abstract 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-строителем.
Построитель toBase()
Получить базовый экземпляр построителя запросов.
TDeclaringModel getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
TRelatedModel getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder|null $query = null)
Добавить ограничение eager загрузки whereIn для данного набора ключей модели.
protected string whereInMethod(Model $model, string $key)
Получить имя метода "where in" для eager загрузки.
static void requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей.
static bool requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей.
static array enforceMorphMap(array $map, bool $merge = true)
Определите карту морфирования для полиморфных отношений и потребуйте, чтобы все модели с морфированием были явно сопоставлены.
static array morphMap(array|null $map = null, bool $merge = true)
Установите или получите карту морфирования для полиморфных отношений.
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()
Определить, использует ли родительская сущность «через» мягкое удаление.
$this withTrashedParents()
Указать, что в запросе должны быть включены удалённые родительские сущности «через».
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)
Выполнять запрос лениво, разбивая результаты запроса на части по сравнениям идентификаторов.
TRelatedModel> lazyByIdDesc(int $chunkSize = 1000, string|null $column = null, string|null $alias = null)
Выполнять запрос лениво, разбивая результаты запроса на части по сравнениям идентификаторов в порядке убывания.
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()
Получить внешний ключ на модели "through".
string getQualifiedFirstKeyName()
Получить полное имя внешнего ключа на модели "through".
string getForeignKeyName()
Получить внешний ключ на связанной модели.
string getQualifiedForeignKeyName()
Получить полное имя внешнего ключа на связанной модели.
string getLocalKeyName()
Получить локальный ключ на модели родителя "far".
строка getQualifiedLocalKeyName()
Получить квалифицированное локальное имя ключа на родительской модели.
строка getSecondLocalKeyName()
Получить локальное имя ключа на промежуточной модели.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Database/Eloquent/Relations/HasOneOrManyThrough.html