laravel 中的“第 1 行必须是数组”

`Row `1` must be array` in laravel

我正在尝试在 maatwebsite 的帮助下在 laravel 中导入 csv 文件。我有一个查询,它从两个 table 中获取数据,两者都相互关联。当我尝试获取两个 table 的数据时,它只导出一个 table 数据,它给我一个 Row1must be array

的错误
$data = SaleOrder::where('id',$id)->with('customers')->get()->toArray();

    return Excel::create('Packlist Sale Order '.$id, function($excel) use ($data) {
            $excel->sheet('mySheet', function($sheet) use ($data)
            {




            foreach($data as $customer)
            {

              $sheet->fromArray($customer['customers']);

            }

            $sheet->fromArray($data);


            });
    })->download('xlsx');

我想在 csv 文件中获取两个 table 的数据

您正在使用 with('customers'),这意味着 $data 是一个多维数组,其中已有客户,并且可能会破坏 $sheet->fromArray($data);

如果您从查询中删除 with('customers') 并执行此操作:

foreach($data as $salesOrder)
{
   $sheet->fromArray($salesOrder->customers()->get()->toArray());
}

这将按需加载它并将其从 $data 中删除。