Отношение
класс Отношение (Просмотреть исходный код)
Трейты
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр Eloquent-строителя запросов. | |
| защищённый Модель | $parent | Экземпляр родительской модели. | |
| защищённый Модель | $related | Экземпляр связанной модели. | |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | |
| статический защищённый массив | $morphMap | Массив для сопоставления имён классов с их именами морф в базе данных. |
Методы
| static void | macro(string $name, callable $macro) Зарегистрировать пользовательское макро. | from Macroable |
| static bool | hasMacro(string $name) Проверить, зарегистрировано ли макро. | 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() Получить связь для отложенной загрузки. | |
| void | touch() Обновить все связанные модели для связи. | |
| int | rawUpdate(array $attributes = []) Выполнить сырое обновление для базового запроса. | |
| Builder | getRelationExistenceCountQuery(Builder $query, Builder $parentQuery) Добавить ограничения для запроса подсчёта существования связи. | |
| Builder | getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для внутреннего запроса существования связи. | |
| 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" связанной модели. | |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить карту morph для полиморфных связей. | |
| static array|null | buildMorphMapFromModels(array $models = null) Создаёт массив с таблицами в качестве ключей из имён классов моделей. | |
| static string|null | getMorphedModel(string $alias) Получить модель, связанную с пользовательским полиморфным типом. | |
| void | __clone() Принудительно клонировать базовый билдер запроса при клонировании. |
Детали
static void macro(string $name, callable $macro)
Зарегистрировать пользовательское макро.
static bool hasMacro(string $name)
Проверить, зарегистрировано ли макро.
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()
Получить отношение для жадной загрузки.
void touch()
Отметить все связанные модели для отношения.
int rawUpdate(array $attributes = [])
Выполнить прямое обновление по базовому запросу.
Builder getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)
Добавить ограничения для запроса подсчёта существования отношения.
Builder getRelationExistenceQuery(Builder $query, Builder $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для внутреннего запроса существования отношения.
В сущности, эти запросы сравнивают имена столбцов, например, `whereColumn`.
protected array getKeys(array $models, string $key = null)
Получить все первичные ключи для массива моделей.
Builder getQuery()
Получить основной запрос для отношения.
Builder getBaseQuery()
Получить базовый конструктор запроса, управляющий конструктором Eloquent.
Model getParent()
Получить родительскую модель отношения.
string getQualifiedParentKeyName()
Получить полное квалифицированное имя родительского ключа.
Модель getRelated()
Получить связанную модель отношения.
string createdAt()
Получить имя столбца "created at".
string updatedAt()
Получить имя столбца "updated at".
string relatedUpdatedAt()
Получить имя столбца "updated at" связанной модели.
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()
Принудительно клонировать базовый билдер запросов при клонировании.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.4/Illuminate/Database/Eloquent/Relations/Relation.html