Отношение
абстрактный класс Отношение реализует Builder (Просмотреть исходный код)
Трейты
| ForwardsCalls | |
| Macroable |
Свойства
| статический защищенный массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищенный Builder | $query | Экземпляр Eloquent-строителя запросов. | |
| защищенный Model | $parent | Экземпляр родительской модели. | |
| защищенный Model | $related | Экземпляр связанной модели. | |
| защищенный bool | $eagerKeysWereEmpty | Указывает, должна ли жадно загруженная связь неявно возвращать пустой коллекцию. | |
| статический защищенный bool | $constraints | Указывает, добавляет ли связь ограничения. | |
| статический массив | $morphMap | Массив для сопоставления имен классов с их именами morph в базе данных. | |
| статический защищенный bool | $requireMorphMap | Запрещает morph-связи без morph-карты. | |
| статический защищенный int | $selfJoinCount | Количество само-соединений. |
Методы
| 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 |
| static mixed | __callStatic(string $method, array $parameters)
Динамически обработать вызовы класса. | from Macroable |
| mixed | __call(string $method, array $parameters)
Обработать динамические вызовы метода к отношению. | |
| void | __construct(Builder $query, Model $parent)
Создать новый экземпляр отношения. | |
| 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()
Получить отношение для быстрого загрузки. | |
| Model | sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись. | |
| Collection | get(array $columns = ['*'])
Выполнить запрос как операцию "select". | |
| void | touch()
Обновить все связанные модели для отношения. | |
| int | rawUpdate(array $attributes = [])
Выполнить прямое обновление базового запроса. | |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта отношения. | |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для внутреннего запроса проверки существования отношения. | |
| string | getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения. | |
| array | getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей. | |
| 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" связанной модели. | |
| void | whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для быстрого загрузки заданного набора ключей моделей. | |
| 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 array|null | buildMorphMapFromModels(array $models = null)
Создает массив с ключами таблиц из имён классов моделей. | |
| static string|null | getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом. | |
| void | __clone()
Вынужденное клонирование базового билдера запросов при клонировании. |
Подробности
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)
Выбросить исключение плохого вызова метода для заданного метода.
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)
Обработка динамических вызовов метода отношения.
static mixed noConstraints(Closure $callback)
Выполнение обратного вызова без ограничений в отношении.
abstract void addConstraints()
Установить базовые ограничения для запроса отношения.
abstract void addEagerConstraints(array $models)
Установить ограничения для леничной загрузки отношения.
abstract array initRelation(array $models, string $relation)
Инициализировать отношение для набора моделей.
abstract array match(array $models, Collection $results, string $relation)
Сопоставить загруженные результаты ленично к их родителям.
abstract mixed getResults()
Получить результаты отношения.
Collection getEager()
Получить отношение для ленивой загрузки.
Модель sole(array|string $columns = ['*'])
Выполнить запрос и получить первый результат, если это единственная соответствующая запись.
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 = ['*'])
Добавить ограничения для внутреннего запроса существования отношения.
По существу, эти запросы сравнивают имена столбцов, как в whereColumn.
string getRelationCountHash(bool $incrementJoinCount = true)
Получить хеш таблицы соединения отношения.
protected array getKeys(array $models, string|null $key = null)
Получить все первичные ключи для массива моделей.
protected Builder getRelationQuery()
Получить конструктор запроса, который будет содержать ограничения отношения.
Builder getQuery()
Получить базовый запрос для отношения.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Builder toBase()
Получить экземпляр базового конструктора запроса.
Модель getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "создано в".
string updatedAt()
Получить имя столбца "обновлено в".
string relatedUpdatedAt()
Получить имя столбца "обновлено в" связанной модели.
protected void whereInEager(string $whereIn, string $key, array $modelKeys, Builder $query = null)
Добавить ограничение whereIn для жадного загрузки заданного набора идентификаторов моделей.
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)
Определить сопоставление morph для полиморфных отношений и потребовать, чтобы все модели morphed были явно сопоставлены.
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()
Вынудительно клонирует базовый создатель запросов при клонировании.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Database/Eloquent/Relations/Relation.html