家人们chunkById 死循环
忽略把又复现不出来,估计是本地环境乱了
家人们我使用 chunkById 下载文件死循环了,但是换成chunk就好了,
我看chatgpt说我表里id不是连续的,我确实不是连续的,但是不应该死循环吧
求解答
$builder = new Order()
$date = date("y-m-d H-i-s");
$fileName = "xxx_{$date}.csv";
$response = new StreamedResponse(null, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename='.$fileName,
]);
$response->setCallback(function () use ($builder){
$out = fopen('php://output', 'w');
fwrite($out, chr(0xEF) . chr(0xBB) . chr(0xBF)); // 添加 BOM
fputcsv($out,["xxx",]);
$res = $builde
->chunkById(1000,function ($data)use (&$out){
$data = json_decode(json_encode($data), true);
foreach ($data as $item) {
fputcsv($out,$item);
}
});
fclose($out);
});
return $response;
推荐文章: