大小网站下载数据库

maatwebsite download database

我使用 laravel 8 和 maatwebsite 3.1,想通过单击图标将我的数据库的 table 下载(导出)为 excel 文件。正如我搜索的那样,我们必须通过 artisan php artisan make:export blogExport --model=blog 创建一个 class 并在控制器中使用下载方法。 Excel::download(new blogExport, 'filename.xlsx');。 blogExport 包括 collection() 函数,我们应该在其中确定输出事项。但我想在控制器中编写函数并直接在此函数中确定我想要的输出,而不是使用 blogExport。可能吗 ?有一种方法“CREATE”可以使用,但它是旧的并且不受 maatwebsite 3.1 支持。任何答复表示赞赏。

    class ExcellExport implements FromCollection, WithHeadings, WithEvents, WithStrictNullComparison,ShouldAutoSize
{
    use Exportable;

    public function __construct($header, $query)
    {
        $this->header = $header;
        $this->query = $query;
    }
    //======================================
    public function headings(): array
    {
        return [$this->header];
    }
    //======================================
    public function collection()
    {
        return collect($this->query);
        
    }
}

然后像这样传递您的查询:

$query = Estate::where($inputs)->with('landlord', 'rented', 'my_estate_list');
$headers=["code,type_caption,space,landlord,area,address,price"];
$resultExcell = new ExcellExport($headers, $query);
return Excel::download($resultExcell, 'file_name.xlsx');