現在、独学でcakephp3を習得中の環境にあります。
cakephp3でテーブルからCSVにエクスポートする機能を作成しようと考えております。
現在、controller
内でexport
アクションを作成して一番簡単と思われる方法でテストをしておりますが
エラーで止まっております。
######エラー内容
fputcsv() expects parameter 2 to be array, object given
######現在のコード
$list = $this->Samples->find()->toArray(); $fp = fopen('test.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp);
$this->Samples->find()
で最初取得していたので、データ型を調べたらobjyectとなっていたので
->toArray()
でarrayとして取得したのですがうまく動きません。
エラーの内容を調べていると、fputcsv
の第2引数にarrayで入れていないからエラーとしてはじかれているのだと思うのですが、CAKEPHPのCSV出力の出力サンプルを拝見しても違いとしては、$list
のみ違うことくらいしか読み取れませんでした。
以下参考URL
http://qiita.com/kazu56/items/d2df449eb58e4ef9410e
試しに、
$list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') );
とした場合には動きました。
よって、$list = $this->Samples->find()->toArray();
で取得しているものがarrayではないのでしょうか。
エンティティとarrayの違いをうまく理解できていないことが原因になっているのかと推測しておりますが
解決方法がわかりませんでしたので、ご質問をさせていただきました。
わかりにくくて大変恐縮ではありますが、ご教授いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/26 13:05