HasOneThrough
class HasOneThrough extends HasManyThrough (View source)
Свойства
| InteractsWithDictionary | |
| SupportsDefaultModels | |
| InteractsWithDictionary | |
| ForwardsCalls | |
| Macroable |
Свойства
| static protected array | $macros | Зарегистрированные строковые макросы. | из Macroable |
| protected Builder | $query | Экземпляр Eloquent-строки запроса. | из Relation |
| protected Model | $parent | Экземпляр родительской модели. | из Relation |
| protected Model | $related | Экземпляр связанной модели. | из Relation |
| static protected bool | $constraints | Указывает, добавляет ли связь ограничения. | из Relation |
| static array | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. | из Relation |
| static protected bool | $requireMorphMap | Препятствует морф-связям без морф-сопоставления. | из Relation |
| static protected int | $selfJoinCount | Количество самосоединений. | из Relation |
| protected Model | $throughParent | Экземпляр родительской модели "через". | из HasManyThrough |
| protected Model | $farParent | Экземпляр отдалённой родительской модели. | из HasManyThrough |
| protected string | $firstKey | Ближайший ключ в отношении. | из HasManyThrough |
| protected string | $secondKey | Отдалённый ключ в отношении. | из HasManyThrough |
| protected string | $localKey | Локальный ключ в отношении. | из HasManyThrough |
| protected string | $secondLocalKey | Локальный ключ в промежуточной модели. | из HasManyThrough |
| 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)
Создать новый экземпляр связи 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 |
| Модель | getParent()
Получить родительскую модель отношения. | из Отношения |
| строка | getQualifiedParentKeyName()
Получить полное квалифицированное имя ключа родительской таблицы. | из HasManyThrough |
| Модель | getRelated()
Получить связанную модель отношения. | из Отношения |
| строка | createdAt()
Получить имя столбца «создано в». | из Отношения |
| строка | updatedAt()
Получить имя столбца «обновлено в». | из Отношения |
| строка | relatedUpdatedAt()
Получить имя столбца «обновлено в» для связанной модели. | из Отношения |
| строка | whereInMethod(Модель $model, строка $key)
Получить имя метода «where in» для ленивой загрузки. | из Отношения |
| статический void | requireMorphMap(bool $requireMorphMap = true)
Запретить использование полиморфных отношений без сопоставления моделей. | из Отношения |
| статический bool | requiresMorphMap()
Определить, требуют ли полиморфные отношения явного сопоставления моделей. | из Отношения |
| статический массив | enforceMorphMap(массив $map, bool $merge = true)
Определить карту полиморфных отношений и потребовать, чтобы все модели, к которым они относятся, были явно сопоставлены. | из Отношения |
| статический массив | morphMap(массив $map = null, bool $merge = true)
Установить или получить карту полиморфных отношений. | из Отношения |
| статический массив|null | buildMorphMapFromModels(массив $models = null)
Создает таблично-индексированный массив из имен классов моделей. | из Отношения |
| статический строка|null | getMorphedModel(строка $alias)
Получить модель, связанную с пользовательским полиморфным типом. | из Отношения |
| void | __clone()
Принудительно клонировать базовый конструктор запроса при клонировании. | из Отношения |
| mixed | getDictionaryKey(mixed $attribute)
Получить атрибут ключа словаря — при необходимости привести его к строке. | из InteractsWithDictionary |
| void | performJoin(Строитель $query = null)
Установить условную часть запроса. | из HasManyThrough |
| bool | throughParentSoftDeletes()
Определить, использует ли родительская модель «через» отношения Soft Deletes. | из HasManyThrough |
| $this | withTrashedParents()
Указать, что следует включить в запрос удаленные родительские модели «через». | из HasManyThrough |
| массив | buildDictionary(Коллекция $results)
Создать словарь модели, индексированный по внешнему ключу отношения. | из HasManyThrough |
| Модель | firstOrNew(массив $attributes)
Получить первую связанную модель, соответствующую атрибутам, или создать ее экземпляр. | из HasManyThrough |
| Модель | updateOrCreate(массив $attributes, массив $values = [])
Создать или обновить связанную запись, соответствующую атрибутам, и заполнить ее значениями. | из HasManyThrough |
| Модель| HasManyThrough | firstWhere(Closure|строка|массив $column, mixed $operator = null, mixed $value = null, строка $boolean = 'and')
Добавить базовое условие «where» в запрос и вернуть первый результат. | из HasManyThrough |
| mixed | first(массив $columns = ['*'])
Выполнить запрос и получить первую связанную модель. | из HasManyThrough |
| Модель| HasManyThrough | firstOrFail(массив $columns = ['*'])
Выполнить запрос и получить первый результат или выбросить исключение. | из HasManyThrough |
| Модель| Коллекция|null | find(mixed $id, массив $columns = ['*'])
Найти связанную модель по ее первичному ключу. | из HasManyThrough |
| Коллекция | findMany(Arrayable|массив $ids, массив $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам. | из HasManyThrough |
| Модель|Коллекция | 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 |
| 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 |
| Генератор | 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|array|bool $callback = true)
Возвратить новый экземпляр модели в случае отсутствия связи. | из SupportsDefaultModels |
| Модель|null | getDefaultFor(Модель $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, Модель $farParent, Модель $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, Коллекция $results, string $relation)
Сопоставить загруженные результаты с их родительскими элементами.
mixed getResults()
Получить результаты отношения.
Коллекция getEager()
Получить отношение для ленивой загрузки.
Модель sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
Коллекция get(array $columns = ['*'])
Выполнить запрос как операцию "select".
void touch()
Обновить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить необработанное обновление по основному запросу.
Билдер getRelationExistenceCountQuery(Билдер $query, Билдер $parentQuery)
Добавить ограничения для запроса подсчета отношения.
Билдер getRelationExistenceQuery(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса отношения.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хэш таблицы соединения отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Билдер getRelationQuery()
Получить билдер запроса, который будет содержать ограничения отношения.
Билдер getQuery()
Получить основной запрос для отношения.
Билдер getBaseQuery()
Получить базовый билдер запроса, управляющий билдером Eloquent.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
protected string whereInMethod(Модель $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()
Определить, использует ли «через» родитель отношения мягкие удаления.
$this withTrashedParents()
Указать, что в запросе следует включать удалённых «через» родителей.
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(Представляемое массивом|массив $ids, массив $columns = ['*'])
Найти несколько связанных моделей по их первичным ключам.
Модель|Список findOrFail(смешанный $id, массив $columns = ['*'])
Найти связанную модель по ее первичному ключу или выбросить исключение.
СтраничныйСПодсчетомЭлементов paginate(int|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', int $page = null)
Получить страницу для оператора «выбрать».
Страничный simplePaginate(int|null $perPage = null, массив $columns = ['*'], строка $pageName = 'page', int|null $page = null)
Разбить результаты заданного запроса на страницы с помощью простого страничного вывода.
СтраничныйСКурсором cursorPaginate(int|null $perPage = null, массив $columns = ['*'], строка $cursorName = 'cursor', строка|null $cursor = null)
Разбить результаты заданного запроса на страницы с помощью страничного вывода с курсором.
protected массив shouldSelect(массив $columns = ['*'])
Установить предложение select для запроса отношения.
bool chunk(int $count, вызываемый $callback)
Разбить результаты запроса на куски.
bool chunkById(int $count, вызываемый $callback, строка|null $column = null, строка|null $alias = null)
Разбить результаты запроса на куски, сравнивая числовые идентификаторы.
Генератор cursor()
Получить генератор для заданного запроса.
bool each(вызываемый $callback, int $count = 1000)
Выполнить обратный вызов над каждым элементом с разбиением на куски.
ЛениваяКоллекция lazy(int $chunkSize = 1000)
Ленивое выполнение запроса, по кускам заданного размера.
ЛениваяКоллекция lazyById(int $chunkSize = 1000, строка|null $column = null, строка|null $alias = null)
Ленивое выполнение запроса, разбивая результаты запроса на куски, сравнивая идентификаторы.
protected Построитель prepareQueryBuilder(массив $columns = ['*'])
Подготовить построитель запроса для выполнения запроса.
Построитель getRelationExistenceQueryForSelfRelation(Построитель $query, Построитель $parentQuery, массив|смешанный $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)
Возвратить новый экземпляр модели в случае, если отношение не существует.
protected Model|null getDefaultFor(Model $parent)
Получить значение по умолчанию для этого отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Relations/HasOneThrough.html