Laravel : 无法使用 Foreach 创建多个数据关系

Laravel : Cant Create Multiple Data Relation with Foreach

我在使用 ‍Maatwebsite/excel‍‍‍ 导入创建数据时遇到问题。在我的导入 class 中,我想用关系创建数据,当我尝试包含子数据的 dd 变量时它工作得很好,但是当我 ‍saveMany() 数据 returns 无效和错误。

Integrity constraint violation: 1048 Column 'description' cannot be null

这是我的代码:

public function collection(Collection $rows) {
    $parent = Parent::create([
        'name' => $this->name,
        'slug' => $this->slug,
        'month' => $this->month,
    ]);

    foreach ($rows as $row) {
        $item = new Child([
            'description' => $row['description'],
            'status' => $row['status'],
        ]);
        $items[] = $item;
    }
    $parent->childs()->saveMany($items);
}

可能你的 $row['description'] 在 foreach 中有空值。

像这样编辑你的循环代码

 foreach ($rows as $row) {
        if(!empty($row['description]))
        {
          $item = new Child([
            'description' => $row['description'],
            'status' => $row['status'],
          ]);
         $items[] = $item;
        }
    }

同时编辑最后一行

if(!empty($items))
  $parent->childs()->saveMany($items);