【问题标题】:Laravel: saving multiple models at once / json nested inputLaravel:一次保存多个模型/ json嵌套输入
【发布时间】:2015-02-23 11:32:18
【问题描述】:

我正在使用 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');
    }
}

【问题讨论】:

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


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      相关资源
      最近更新 更多