Skip to content

Instantly share code, notes, and snippets.

@FrancisVarga
Created August 14, 2014 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FrancisVarga/9b69f7110b926f0fa17d to your computer and use it in GitHub Desktop.
Save FrancisVarga/9b69f7110b926f0fa17d to your computer and use it in GitHub Desktop.
snippet for csv export
<?
/**
* @param $queryData
*
* @return StreamedResponse
*/
protected function _exportAsCsv($queryData)
{
$container = $this->container;
$response = new StreamedResponse(
function () use ($container, $queryData) {
$handle = fopen('php://output', 'r+');
$result = $this->_fetchReportingData($queryData);
foreach ($result as $row) {
fputcsv($handle, $row);
}
fclose($handle);
}
);
$filename = "export_" . date("Y_m_d") . ".csv";
$d = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
$filename
);
$response->headers->set('Content-Disposition', $d);
$response->headers->set('Content-Type', 'application/octet-stream');
$response->headers->set('Content-Type', 'text/csv');
$response->headers->set('Mime-Type', 'text/csv');
$response->headers->set("Pragma", "public");
$response->headers->set("Expires", "0");
$response->headers->set("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
$response->headers->set("Cache-Control", "private");
$response->prepare(Request::createFromGlobals());
$response->sendHeaders();
$response->sendContent();
return $response;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment