Могу ли я создать и связать связанную модель в режиме реального времени? Например
Пусть это будет таблица countries с идентификаторами и названиями. Например 171 | Poland
.
Таблица addresses имеет столбец country_id в качестве внешнего ключа, но не нулевой и такие столбцы как город, улица и другие.
В AdressModel также установлено свойство $fillable.
И теперь, чтобы создать новый адрес из запроса, я знаю три способа сделать это.
- Добавьте 'country_id' в свойство $fillable AddresseModel, а затем Country::create($request-›address);
- Используйте
new Address()
, а затем назначьте поля соответствующим свойствам объекта. Наконецsave()
; - Разрешите 'country_id' быть nullable, сделайте
Country::create($request->address)
и вызовите Associate() для данного метода отношения, в этом случае - country().
Есть ли способ сделать это встроенным без nullable(), например:
$country = Country::find($request->country_id);
$address = Address::create($request->address)->country()->associate($country)