//导出中奖数据
public function actionExport() {
$join = KynhJoin::find()->orderBy('chip_num desc,id asc')->all();
$data = Gic::convert('昵称,姓名,电话,年画数,代言积分,奖品') . PHP_EOL; //编码转换
foreach ($join as $k => $v) {
$prize = '';
if ($v->pid > 0) {
$prize = $v->prize->name;
}
$line = preg_replace("/[\n\r,\"\,]+/", " ", $v->user->nickname) . ',' . $v->name . ',' . $v->tel . ',' . $v->chip_num . ',' . $v->integral . ',' . $prize . PHP_EOL;
$line = Gic::convert($line);
$data .= $line;
}
Gic::getCsv('kynh.csv', $data); //输出CSV文件
}
储存时用了序列化存储的方式,结果数据太多就导不出了?每次都是分开导出(没5000条导出一次),很不方便,各位请说明一下原因和比较优雅的解决方案?
可以通过console生成一个csv文件,需要的时候下载就是,算是一个异步思路吧。
5000量不大呀,你先确定你的导出能正常工作。
试下一次 500 或者 50
生成文件,然后一行一行的写入