`Строка` 1` должна быть массивом` в laravel - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь импортировать CSV-файл в laravel с помощью maatwebsite. У меня есть запрос, который приносит данные из двух таблиц, оба имеют отношение друг к другу. он экспортирует только одну таблицу данных, когда я пытаюсь извлечь данные из обеих таблиц, это дает мне ошибку Row 1 must 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-файле

1 Ответ

1 голос
/ 05 февраля 2020

Вы используете with('customers'), что означает, что $data - это многомерный массив, в котором уже есть клиенты, и, скорее всего, нарушит $sheet->fromArray($data);

Если вы удалите with('customers') из запроса и выполните this:

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

Это загрузит его по требованию и оставит его вне $data.

...