Laravel5上插入了多级关系数据

时间:2018-02-17 14:33:55

标签: php laravel laravel-5 eloquent

我尽力用英语描述我的问题

例如:

3个表格,艺术家相册歌曲,它们都有外键。

艺术家有很多专辑

专辑有很多歌曲

由于某种原因,我必须同时插入许多数据:

源数据结构类似于:

{
  artists: [
     {
         name: 'Davie Bowie',
         albums: [
            {
                name: 'Space Oddity',
                songs: [
                   {
                       name: 'Space Oddity'
                   },
                   // ...
                ]
            },
            // ...
         ]
     },
     // ...
  ]
}

我插入艺术家和专辑数据:

$artist = Artist::create([]);
$albums = $artist->album()->createMany([]);

当我插入歌曲数据时,我不知道如何制作它,因为有很多歌曲属于不同的专辑。

当我插入数据时如何确保所属关系是正确的。

1 个答案:

答案 0 :(得分:0)

你需要迭代专辑并插入歌曲:

foreach ($albums as $album) {
    $album->songs()->createMany([....]);
}