Exportuje dane z tabeli do pliku csv
# composer require friendsofcake/cakephp-csvview
# bin/cake plugin load CsvView
config/router.php
$routes->addExtensions(['csv'])
Controller
$invoices = $this->Invoices->find(); $this->set(compact('invoices')); // EXPORT CSV if ($this->request->is('csv')) { $header = ['Lp', 'Nr faktury', 'Opis', 'Netto', 'Brutto', 'Opłacona']; $footer = [,'totals', , '200', '500', ]; // Kilka pustych kolumn $i=1; foreach($invoices as $row) { // Tablica dwuwymiarowa (tablica tablic) $exports[$i]['lp'] = $i; $exports[$i]['number'] = $row->project->number; $exports[$i]['title'] = $row->project->name; $exports[$i]['netto'] = str_replace('.', ',', (string) $row->netto); $exports[$i]['brutto'] = str_replace('.', ',', (string) $row->brutto); $exports[$i]['is_payed'] = $row->is_payed; $i++; } $this->set(compact('exports')); $this->viewBuilder() ->setClassName('CsvView.Csv') ->setOptions([ 'serialize' => 'exports', 'header' => $header, 'footer' => $footer, 'dataEncoding' => 'UTF-8', 'csvEncoding' => 'CP1250', 'delimiter' => ';' ]); $new_response = $this->getResponse()->withDownload('fakturyRB-'.date('d-m-YTHi').'.csv'); $this->setResponse($new_response); return; } // koniec exportu csv