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:
$sheet->fromArray($export->toArray());
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.