简体   繁体   中英

Maatwebsite/Excel Exporting Error

I am using Laravel 5.4 and I want to export a record to a excel file but I got this error

Argument 1 passed to Illuminate\\Database\\Eloquent\\Builder::create() must be of the type array, string given, called in C:\\xampp\\htdocs\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Model.php on line 1332 and defined

and here is my code:

  $export = Student::all(); Excel::create('Export Excel',function($excel) use($export){ $excel->sheet('Sheet 1', function($sheet) use($export){ $sheet->fromArray($export); }); })->download('xlsx'); 

   $export = Student::all();
Excel::create('Export Excel',function($excel) use($export){
    $excel->sheet('Sheet 1', function($sheet) use($export){
        $sheet->fromArray($export);

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

$export is an Eloquent collection and you are using the fromArray method so it expects an array.

You can do two things:

  1. Convert your Eloquent collection to an array:

$sheet->fromArray($export->toArray());

  1. Use the fromModel method that accepts an Eloquent collection:

$sheet->fromModel($export);

Perhaps you have a model named "Excel" that makes the problem.

Just make an alias for "Maatwebsite/Excel" when you imported :

use Maatwebsite\Excel\Facades\Excel as MaatExcel;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM