Php 一次性保存嵌套模型laravel

Php 一次性保存嵌套模型laravel,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我已经创建了两个表 AREAS -id -areaName SOCIETIES -id -area_id -societyName 我的关系是这样定义的 class Area extends Model { // public function society() { return $this->hasMany('App\Society'); } } class Society extends Model { public fu

我已经创建了两个表

AREAS
-id
-areaName

SOCIETIES
-id
-area_id
-societyName
我的关系是这样定义的

class Area extends Model
{
    //
    public function society()
    {
        return $this->hasMany('App\Society');
    }
}

class Society extends Model
{
    public function area()
    {
        return $this->belongsTo('App\Area');
    }
}
现在我已经为地区和社会创建了对象

$area = new \App\Area();
$area->areaName = $input['areaName'];

$society = new \App\Society();
$society->societyName = $input['societyName'];

$society->area()->associate($area);
在此之后,当我调用“$society->save()”时,它不会保存任何记录,并且给出的错误区域id不能为空。我想一次过拯救社会及其相关领域


当我在关联之前使用“$area->save()”时,它会在调用“$society->save()”时保存记录。我只想跳过“$area->save()”,一次性保存社会和地区。

这会给你带来错误,因为你在数据库中没有一个id为它的记录。您需要先保存区域记录,然后将其与关系关联。我不认为它会起到其他作用,请看一下laravel网站上雄辩的文档:


您是否尝试过
$area->society()->保存($society)
;?同样的异常“area_id”不能为null在associate society对象返回后现在我想一次性保存整个对象{“societyName”:“qqqq”,“area_id”:null,“area”:{“areaName”:“ddddd”}