php 具有动态名称的Laravel导出文件

ohtdti5x  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(122)

我正在运行一个脚本,它将收集的数据存储在csv中。它的工作原理如下:

$responce =  Excel::store(new UsersExport($formatted_data), 'fileName.csv', null, \Maatwebsite\Excel\Excel::CSV);

这就是我的课:

class UsersExport implements FromArray
{
    protected $invoices;

    public function __construct(array $invoices)
    {
        $this->invoices = $invoices;
    }

    public function array(): array
    {
        return $this->invoices;
    }
}

到目前为止,文件名是硬编码的,我想让它动态化。每次运行新的导出(2020- 01. csv或类似的东西)时,它应该随着年份和月份而改变。

protected $signature = 'select:values {--year=} {--month=}';

在where子句中,我是这样过滤的:

->whereMonth('ut', $this->option('month'))   
->whereYear('ut', $this->option('year'))

已尝试

Excel::store(new UsersExport($formatted_data)->withFilename()

但是它不起作用...到目前为止我还没有找到类似于我的解决方案的东西。有什么关于如何解决这个问题的想法吗?谢谢!

uxhixvfz

uxhixvfz1#

你能试试这个吗?

$responce = Excel::store(new UsersExport($formatted_data), now()->format('Y-m').'.csv', null, \Maatwebsite\Excel\Excel::CSV);
ulydmbyx

ulydmbyx2#

我的解决办法是:使用简单的PHP连接...
$responce = Excel::store(new UsersExport($formatted_data), $fileName ,null, \Maatwebsite\Excel\Excel::CSV);
并将变量放入导出中,如下所示:$responce = Excel::store(new UsersExport($formatted_data), $fileName ,null, \Maatwebsite\Excel\Excel::CSV);

相关问题