Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maatwebsite/Excel Exporting Error

Tags:

php

laravel

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');
like image 389
JustMeNad Avatar asked May 31 '26 05:05

JustMeNad


1 Answers

$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);

like image 118
Björn Avatar answered Jun 02 '26 18:06

Björn