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;
如有疑问请评论。
我使用 Octobercms 有一段时间了,并且阅读了 documentation 关于将数据导出为 csv 的内容。但是,没有提到任何关于使用动态名称导出文件的事情,因为我需要附加文本或设置带有日期的文件名。 这是 Octobercms 的一种限制吗?
为此,您需要覆盖默认行为。
In your controller where you added
Backend.Behaviors.ImportExportController
ImportExport Behavior
, you can add thedownload
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;
如有疑问请评论。