Laravel:一次保存多个模型/ json嵌套输入

时间:2014-12-26 02:31:03

标签: json validation laravel eloquent one-to-many

我正在使用Postman向我的API端点提交POST请求。

在我的嵌套JSON中,艺术家有一个或多个专辑,每个专辑都有一首或多首歌曲。

我有两个问题: 1)如何在Laravel中执行嵌套数组验证?我正在寻找最佳/标准的Laravel方法。

2)如何将多个模型保存在一起? 注意:我确实在我的Eloquent模型中创建了关系,例如

class Artist extends Eloquent {
    public function albums()
    {
        return $this->hasMany('Album');
    }
}

class Album extends Eloquent {
    public function songs()
    {
        return $this->hasMany('Song');
    }
 }

class Song extends Eloquent {
    public function album()
    {
        return $this->belongsTo('Album');
    }
 }

class Album extends Eloquent {
    public function artist()
    {
        return $this->belongsTo('Artist');
    }
}

1 个答案:

答案 0 :(得分:1)

1)使用验证器的each方法:

$validator = Validator::make(Input::all(), [...rules...]);

$validator->each('albums', [...rules...]);

2)创建艺术家后,循环浏览albums并在关系中调用create

$artist = Artist::create(Input::all());

foreach (Input::get('albums') as $album)
{
    $artist->albums()->create($album);
}