首页 > 解决方案 > Laravel excel library prints blank excel file

问题描述

What's wrong with my code, I tried to export my data table using framework Laravel. The file is downloaded with empty content.
StockModel.php

namespace App; 
use Illuminate\Database\Eloquent\Model; 
class Stock extends Model {
        protected $table = 'stock_tb'; 
        protected $primaryKey = 'id'; 
        protected $fillable = ['stock_id', 'input_date', 'quantity']; 
}

AdminController.php

use Excel;
use App\Stock;
use App\Exports\StockExport;
class adminController extends Controller {
    public function __construct() {  }
    public function printStockReport(){       
       return Excel::download(new StockExport('07/01/2020'), 'ado.xlsx');
    }

StockExport.php

namespace App\Exports;
use App\Stock;
use Maatwebsite\Excel\Concerns\FromQuery;
class StockExport implements FromQuery
{
    protected $id; 
    public function __construct($date_var)
    {
        $this->date = $date_var;
    }  
    public function query()
    {
      return Stock::query()->where('input_date', $this->date)->get();
    }   
}

Router

Route::get('admin/printStockReport', 'adminController@printStockReport');

Fyi: I run the SQL code on my RDBMS with criteria input date 07/01/2020. It returns 129 records.

Thank you

标签: phplaravel

解决方案


remove ->get() , according to laravel-excel documentation no need to that.


推荐阅读