`行'1'必须是laravel中的数组'

`行'1'必须是laravel中的数组',laravel,csv,laravel-5,maatwebsite-excel,Laravel,Csv,Laravel 5,Maatwebsite Excel,我正试图在maatwebsite的帮助下导入laravel中的csv文件。我有一个查询,它从两个表中获取数据,这两个表都是相互关联的。当我试图获取两个表的数据时,它仅导出一个表数据。它给我一个错误,即行1必须是数组 $data = SaleOrder::where('id',$id)->with('customers')->get()->toArray(); return Excel::create('Packlist Sale Order '.$id, functi

我正试图在maatwebsite的帮助下导入laravel中的csv文件。我有一个查询,它从两个表中获取数据,这两个表都是相互关联的。当我试图获取两个表的数据时,它仅导出一个表数据。它给我一个错误,即
1
必须是数组

$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文件中获取两个表的数据

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

如果从查询中删除带('customers')
,并执行以下操作:

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

这将按需加载它,并将其保留在
$data

之外。您是对的,但它仍然不能获取其他表的数据。一次只能获取一个表