setData($data, $headers); } public function setData(array $data, $headers) { $output = fopen('php://temp', 'r+'); fputcsv($output, $headers); //die(dump($data)); foreach ($data as $row) { fputcsv($output, $row); } rewind($output); $this->data = ''; while ($line = fgets($output)) { $this->data .= $line; } $this->data .= fgets($output); return $this->update(); } public function getFilename() { return $this->filename; } public function setFilename($filename) { $this->filename = $filename; return $this->update(); } protected function update() { $this->headers->set('Content-Disposition', sprintf('attachment; filename="%s"', $this->filename)); if (!$this->headers->has('Content-Type')) { $this->headers->set('Content-Type', 'text/csv'); } return $this->setContent($this->data); } }