Laravel 在拉拉维尔创造并与雄辩的人交往

Laravel 在拉拉维尔创造并与雄辩的人交往,laravel,eloquent-relationship,Laravel,Eloquent Relationship,我可以在线创建和关联相关模型吗?比如说 让我们用ID和名称将国家/地区列为表。例如171 |波兰 表地址的列country_id为外键,但不为空和列,如city、street和others 在地址模型中,还设置了$fillable属性 现在,要根据请求创建新地址,我知道三种方法 将'country\u id'添加到AddresseModel$filleble属性,然后添加country::create($request->address) 使用newaddress(),然后将字段分配给匹配对象的

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

让我们用ID和名称将国家/地区列为表。例如
171 |波兰

地址的列country_id为外键,但不为空和列,如city、street和others

在地址模型中,还设置了$fillable属性

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

  • 'country\u id'添加到AddresseModel$filleble属性,然后添加country::create($request->address)
  • 使用
    newaddress()
    ,然后将字段分配给匹配对象的属性。最后
    save()
  • 允许'country\u id'为空,使
    国家::创建($request->address)
    和给定关系方法上的调用associate()在这种情况下为country()
  • 有没有一种方法可以在不使用nullable()的情况下进行内联操作,类似于:

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

    您可以这样做:

    $country=country::find($request->country\u id);
    $address=$country->addresses()->创建([
    “城市”=>“巴塞罗那”,
    ...
    ]);
    
    您可以执行以下操作:

    $country=country::find($request->country\u id);
    $address=$country->addresses()->创建([
    “城市”=>“巴塞罗那”,
    ...
    ]);
    
    谢谢!你说得对!但是,如果我有两个关系的模型,例如UserModel有
    地址id
    公司id
    ,那么这两个外键都不可为null,并且相关的模型都是使用UserModel立即创建的呢?也许这对雄辩来说太过分了吧?事实上,我从来没有遇到过这种情况,所以我真的不知道雄辩能否处理好这件事。我想我会采取一种不同的方法:首先创建公司和地址,然后创建用户(就像您示例中的方法1一样),谢谢!你说得对!但是,如果我有两个关系的模型,例如UserModel有
    地址id
    公司id
    ,那么这两个外键都不可为null,并且相关的模型都是使用UserModel立即创建的呢?也许这对雄辩来说太过分了吧?事实上,我从来没有遇到过这种情况,所以我真的不知道雄辩能否处理好这件事。我想我会采取不同的方法:首先创建公司和地址,然后创建用户(就像您示例中的方法1)