在 Laravel 中创建并关联 Eloquent

Create and associate with Eloquent in Laravel

我可以在线创建和关联相关模型吗?例如

让 table countries with ids and names.例如171 | Poland.

Table addresses 有列 country_id 作为 外键 ,但 not null 和城市、街道等列。

AdressModel中,$fillable 属性也被设置。

现在,要根据请求创建新地址,我知道三种方法。

  1. 'country_id' 添加到 AddresseModel $fillable 属性,然后 Country::create( $请求->地址);
  2. 使用new Address(),然后将字段分配给匹配对象的属性。最后 save();
  3. 允许 'country_id'nullable,使 Country::create($request->address) 并在给定关系上调用 associate()方法,country() 在这种情况下。

有没有办法在没有 nullable() 的情况下内联,比如:

$country = Country::find($request->country_id);
$address = Address::create($request->address)->country()->associate($country)

你可以这样做:

$country = Country::find($request->country_id);
$address = $country->addresses()->create([
    'city' => 'Barcelona',
    ...
]);