Octobercms 导出动态文件名

Octobercms export with dynamic fileName

我使用 Octobercms 有一段时间了,并且阅读了 documentation 关于将数据导出为 csv 的内容。但是,没有提到任何关于使用动态名称导出文件的事情,因为我需要附加文本或设置带有日期的文件名。 这是 Octobercms 的一种限制吗?

为此,您需要覆盖默认行为。

In your controller where you added Backend.Behaviors.ImportExportController ImportExport Behavior, you can add the download method, and there you can change the name of downloading the CSV file.

class YourController extends Controller
{
    public $implement = [
        'Backend.Behaviors.FormController',
        'Backend.Behaviors.ListController',
        'Backend.Behaviors.ImportExportController' // HERE
    ];

    public function download($name, $outputName = null) // <-- THIS method
    {
        $this->pageTitle = $this->pageTitle
            ?: Lang::get($this->asExtension('ImportExportController')
                     ->getConfig('export[title]', 'Export records'));

        // $newOutputName = 'my_new_name.csv'; // <-- HERE you can update name of CSV file
        $outputName = explode('.', $outputName)[0];
        $outputName = $outputName . '-' . date('d-m-Y') . '.csv';
        $newOutputName = $outputName;
        return $this->asExtension('ImportExportController')
                     ->exportGetModel()->download($name, $newOutputName);
    }

    //     ... other code

}

将日期附加到现有名称

// $outputName its coming from the config
$outputName = explode('.', $outputName)[0];
$outputName = $outputName . '-' . date('d-m-Y') . '.csv';
$newOutputName = $outputName;

如有疑问请评论。