protected function WebformSubmissionExportImportController::createResponse in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_submission_export_import/src/Controller/WebformSubmissionExportImportController.php \Drupal\webform_submission_export_import\Controller\WebformSubmissionExportImportController::createResponse()
Create a response containing submission CSV example.
Parameters
bool $download: TRUE is response should be downloaded.
Return value
\Symfony\Component\HttpFoundation\Response A response containing submission CSV example.
2 calls to WebformSubmissionExportImportController::createResponse()
- WebformSubmissionExportImportController::download in modules/
webform_submission_export_import/ src/ Controller/ WebformSubmissionExportImportController.php - Returns the Webform submission export example CSV download.
- WebformSubmissionExportImportController::view in modules/
webform_submission_export_import/ src/ Controller/ WebformSubmissionExportImportController.php - Returns the Webform submission export example CSV view.
File
- modules/
webform_submission_export_import/ src/ Controller/ WebformSubmissionExportImportController.php, line 116
Class
- WebformSubmissionExportImportController
- Provides route responses for webform submission export/import.
Namespace
Drupal\webform_submission_export_import\ControllerCode
protected function createResponse($download = FALSE) {
$webform = $this->importer
->getWebform();
// From: http://obtao.com/blog/2013/12/export-data-to-a-csv-file-with-symfony/
$response = new StreamedResponse(function () {
$handle = fopen('php://output', 'r+');
$header = $this->importer
->exportHeader();
fputcsv($handle, $header);
for ($i = 1; $i <= 3; $i++) {
$webform_submission = $this
->generateSubmission($i);
$record = $this->importer
->exportSubmission($webform_submission);
fputcsv($handle, $record);
}
fclose($handle);
});
$response->headers
->set('Content-Type', $download ? 'text/csv' : 'text/plain');
$response->headers
->set('Content-Disposition', ($download ? 'attachment' : 'inline') . '; filename=' . $webform
->id() . '.csv');
return $response;
}