edo1z blog

プログラミングなどに関するブログです

cakephp2 - csvダウンロード

CsvHelperがあります。 https://github.com/dai199/cakephp-csv-helper

書き方は、下記のような感じになります。(上記GitHubの使い方の説明を引用)

<?php
$this->Csv->addRow($th);
foreach($td as $t) {
    $this->Csv->addField($t['User']);
    // .... 行を追加していく
    $this->Csv->endRow();
}
$this->Csv->setFilename($filename);
// 文字化けの場合は echo $this->Csv->render(true, 'sjis', 'utf-8');
echo $this->Csv->render();

これは、ここに記載している内容と基本同じようです。下記記載のリンクからヘルパーのファイルにたどり着かなかったので、再度投稿します。 http://endoyuta.com/2014/04/28/cakephp-csv%E3%83%98%E3%83%AB%E3%83%91%E3%83%BC/

あと、このプラグインのCsvHelper.phpの28行目が、下記のようになっていて、$rowがありませんエラーが出ていたので、$rowを追加する必要があると思った。

function addRow() {
    fputcsv($this->buffer, $row, $this->delimiter, $this->enclosure);
}

あと、下記コードを書いたら文字化けした。 echo $this->Csv->render(true, 'sjis', 'utf-8');