HasOneOrMany
класс HasOneOrMany расширяет Relation (Просмотреть исходный код)
Трейты
| Macroable |
Свойства
| статический защищённый массив | $macros | Зарегистрированные строковые макросы. | из Macroable |
| защищённый Builder | $query | Экземпляр билдера запросов Eloquent. | из Relation |
| защищённый Model | $parent | Экземпляр родительской модели. | из Relation |
| защищённый Model | $related | Экземпляр связанной модели. | из Relation |
| статический защищённый bool | $constraints | Указывает, добавляет ли отношение ограничения. | из Relation |
| статический массив | $morphMap | Массив для сопоставления имён классов с их именами морфизма в базе данных. | из Relation |
| защищённый string | $foreignKey | Внешний ключ родительской модели. | |
| защищённый string | $localKey | Локальный ключ родительской модели. | |
| статический защищённый int | $selfJoinCount | Количество самосоединений. |
Методы
| static void | macro(string $name, object|callable $macro) Зарегистрировать пользовательскую макрокоманду. | from Macroable |
| static void | mixin(object $mixin) Смешать другой объект в класс. | 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 $parent, string $foreignKey, string $localKey) Создать новый экземпляр связи "один к одному" или "один ко многим". | |
| static mixed | noConstraints(Closure $callback) Выполнить обратный вызов без ограничений для связи. | from Relation |
| void | addConstraints() Установить базовые ограничения для запроса связи. | |
| void | addEagerConstraints(array $models) Установить ограничения для жадного загрузки связи. | |
| array | initRelation(array $models, string $relation) Инициализировать связь для набора моделей. | from Relation |
| array | match(array $models, Collection $results, string $relation) Сопоставить загруженные результаты с их родительскими объектами. | from Relation |
| mixed | getResults() Получить результаты связи. | from Relation |
| Collection | getEager() Получить связь для жадной загрузки. | from Relation |
| Collection | get(array $columns = ['*']) Выполнить запрос как операцию "select". | from Relation |
| 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 = ['*']) Добавить ограничения для запроса связи. | |
| array | getKeys(array $models, string $key = null) Получить все первичные ключи для массива моделей. | from Relation |
| Builder | getQuery() Получить базовый запрос для связи. | from Relation |
| Builder | getBaseQuery() Получить базовый билдер запроса, управляющий билдером Eloquent. | from Relation |
| Model | getParent() Получить родительскую модель связи. | from Relation |
| string | getQualifiedParentKeyName() Получить полностью квалифицированное имя родительского ключа. | |
| Model | getRelated() Получить связанную модель связи. | from Relation |
| string | createdAt() Получить имя столбца "created at". | from Relation |
| string | updatedAt() Получить имя столбца "updated at". | from Relation |
| string | relatedUpdatedAt() Получить имя столбца "updated at" связанной модели. | from Relation |
| static array | morphMap(array $map = null, bool $merge = true) Установить или получить отображение morph для полиморфных связей. | from Relation |
| static array|null | buildMorphMapFromModels(array $models = null) Создаёт таблично-ключевой массив из имён классов моделей. | from Relation |
| static string|null | getMorphedModel(string $alias) Получить модель, связанную с пользовательским полиморфным типом. | from Relation |
| void | __clone() Принудительно выполнить клонирование базового билдера запросов при клонировании. | из Relation |
| Модель | make(array $attributes = []) Создать и вернуть несохранённую копию связанной модели. | |
| array | matchOne(array $models, Коллекция $results, string $relation) Сопоставить загруженные результаты с их единственными родителями. | |
| array | matchMany(array $models, Коллекция $results, string $relation) Сопоставить загруженные результаты со многими родителями. | |
| array | matchOneOrMany(array $models, Коллекция $results, string $relation, string $type) Сопоставить загруженные результаты со многими родителями. | |
| mixed | getRelationValue(array $dictionary, string $key, string $type) Получить значение связи по типу один или много. | |
| array | buildDictionary(Коллекция $results) Построить словарь моделей, индексированный по внешнему ключу связи. | |
| Коллекция|Модель | findOrNew(mixed $id, array $columns = ['*']) Найти модель по первичному ключу или вернуть новую копию связанной модели. | |
| Модель | firstOrNew(array $attributes, array $values = []) Получить первую запись связанной модели, соответствующую атрибутам, или создать её экземпляр. | |
| Модель | firstOrCreate(array $attributes, array $values = []) Получить первую связанную запись, соответствующую атрибутам, или создать её. | |
| Модель | updateOrCreate(array $attributes, array $values = []) Создать или обновить связанную запись, соответствующую атрибутам, и заполнить её значениями. | |
| Модель|false | save(Модель $model) Привязать экземпляр модели к родительской модели. | |
| Traversable|array | saveMany(Traversable|array $models) Привязать коллекцию моделей к родительскому экземпляру. | |
| Модель | create(array $attributes = []) Создать новый экземпляр связанной модели. | |
| Коллекция | createMany(array $records) Создать коллекцию новых экземпляров связанной модели. | |
| void | setForeignAttributesForCreate(Модель $model) Установить внешний идентификатор для создания связанной модели. | |
| int | update(array $attributes) Выполнить обновление всех связанных моделей. | |
| Билдер | getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*']) Добавить ограничения для запроса отношения на той же таблице. | |
| string | getRelationCountHash() Получить хэш таблицы соединения отношений. | |
| string | getExistenceCompareKey() Получить ключ для сравнения с родительским ключом в запросе "has". | |
| mixed | getParentKey() Получить значение ключа локальной части родительского ключа. | |
| string | getForeignKeyName() Получить простой внешний ключ. | |
| string | getQualifiedForeignKeyName() Получить внешний ключ для отношения. |
Details
static void macro(string $name, object|callable $macro)
Зарегистрировать пользовательский макрос.
static void mixin(object $mixin)
Смешать другой объект в класс.
static bool hasMacro(string $name)
Проверяет, зарегистрирован ли макрос.
static mixed __callStatic(string $method, array $parameters)
Динамически обработать вызовы к классу.
mixed __call(string $method, array $parameters)
Динамически обработать вызовы к классу.
void __construct(Билдер $query, Модель $parent, string $foreignKey, string $localKey)
Создать новый экземпляр отношения один к одному или многим.
static mixed noConstraints(Closure $callback)
Выполнить обратный вызов без ограничений для отношения.
void addConstraints()
Установить базовые ограничения для запроса отношения.
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()
Получить отношение для жадной загрузки.
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 = ['*'])
Добавить ограничения для запроса отношения.
protected 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)
Установить или получить отображение морфизма для полиморфных отношений.
static protected array|null buildMorphMapFromModels(array $models = null)
Создаёт массив, индексированный по таблицам, из имён классов моделей.
static string|null getMorphedModel(string $alias)
Получить модель, связанную с пользовательским полиморфным типом.
void __clone()
Принудительно клонировать базовый билдер запросов при клонировании.
Модель make(array $attributes = [])
Создать и вернуть несохранённую экземпляр связанной модели.
array matchOne(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с нетерпением результаты с их единственными родительскими элементами.
array matchMany(array $models, Коллекция $results, string $relation)
Сопоставить загруженные с нетерпением результаты с их многими родителями.
protected array matchOneOrMany(array $models, Коллекция $results, string $relation, string $type)
Сопоставить загруженные с нетерпением результаты с их многими родителями.
protected mixed getRelationValue(array $dictionary, string $key, string $type)
Получить значение отношения по одному или многим типам.
protected array buildDictionary(Коллекция $results)
Построить словарь моделей, индексированный по внешнему ключу отношения.
Коллекция|Модель findOrNew(mixed $id, array $columns = ['*'])
Найти модель по её первичному ключу или вернуть новый экземпляр связанной модели.
Модель firstOrNew(array $attributes, array $values = [])
Получить первую запись связанной модели, соответствующую атрибутам, или создать её.
Модель firstOrCreate(array $attributes, array $values = [])
Получить первую запись, соответствующую атрибутам, или создать её.
Модель updateOrCreate(array $attributes, array $values = [])
Создать или обновить запись, соответствующую атрибутам, и заполнить её значениями.
Объект итерирования|array saveMany(Объект итерирования|array $models)
Прикрепить коллекцию моделей к родительскому экземпляру.
Модель create(array $attributes = [])
Создать новый экземпляр связанной модели.
Коллекция createMany(array $records)
Создать коллекцию новых экземпляров связанной модели.
protected void setForeignAttributesForCreate(Модель $model)
Установить внешний идентификатор для создания связанной модели.
int update(array $attributes)
Выполнить обновление всех связанных моделей.
Билдер getRelationExistenceQueryForSelfRelation(Билдер $query, Билдер $parentQuery, array|mixed $columns = ['*'])
Добавить ограничения для запроса к отношениям на одной и той же таблице.
string getRelationCountHash()
Получить хэш таблицы объединения отношений.
string getExistenceCompareKey()
Получить ключ для сравнения с ключом родительской записи в запросе "has".
mixed getParentKey()
Получить значение ключа родительской локальной записи.
string getForeignKeyName()
Получить простой внешний ключ.
string getQualifiedForeignKeyName()
Получить внешний ключ для отношения.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.6/Illuminate/Database/Eloquent/Relations/HasOneOrMany.html