【发布时间】:2016-04-13 01:18:38
【问题描述】:
我有一个项目,人们可以在其中预订活动地点。有几十个事件。我被要求生成一份列出与会者的报告,以便他们可以在门口办理登机手续。因为有很多事件,我想在每个事件的编辑表单中添加一个“与会者报告”按钮(在 CMS 内)。我已经创建了按钮,它可以工作。
但是...我没有在 CSV 中获取数据,而是在 CMS 中显示了(正确的)数据,就好像它正在被回显一样。
这是我的功能
公共函数 getCustomersForEvent($data, $form){
$attendees = CustomerOrderLine::get()->filter(array("EventID" => $data["ID"]));
if(!$attendees){
return false;
}
$fileName = "report.csv";
$separator = ",";
$csvColumns = array("ID", "Description", "Customer");
$fileData = "";
foreach($attendees as $row){
$fileData .= $row->Event()->EventName . $separator;
$fileData .= $row->CustomerOrder()->Customer()->FirstName . " " . $row->CustomerOrder()->Customer()->Surname . "\n";
}
return SS_HTTPRequest::send_file($fileData, $fileName, 'text/csv');
}
我查看了这个http://www.silverstripe.org/community/forums/general-questions/show/15325,但数据还是回显到了 CMS。
谁能告诉我我做错了什么?正如我所说,数据很好,但我没有看到 CSV 打开或保存对话框。
【问题讨论】:
-
也许你需要在发送输出之前设置一个内容处置头
-
。 .不,它仍然在 CMS 上输出为文本。
标签: php silverstripe