一次性保存嵌套模型laravel

时间:2016-03-19 02:59:31

标签: 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 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()"它不保存任何记录并给出错误area_id不能为空。我想一气呵成地拯救社会及其关系领域。

当我使用" $ area-> save()"在调用" $ society-> save()"之前将其保存记录。我想做的就是跳过" $ area-> save()"并一次性拯救社会和地区。

1 个答案:

答案 0 :(得分:0)

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

https://laravel.com/docs/5.1/eloquent-relationships