php 获取大量的数据在刀片和pdf打印在laravel

am46iovg  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(95)

我需要从数据库中获取大约30k的记录,以在刀片和PDF打印中显示ALL
我试过下面的方法,但每一个都有问题
1-我已经使用paginate(),它在刀片中工作正常,但当我需要使用PDF将其全部打印在纸上时,我只能得到第一页200条记录

$accounts = Acc_account::where('cat', 2)->paginate(200)

2-我已经使用了chunk(),但我不能在刀片中使用它

$accounts = Acc_account::where('cat', 2)->chunk(200, function (account) {
            foreach ($accounts as $account) {
                //
            }
        }); ;

3-我已经使用了get()和all(),但是因为数据很大,我得到了500个错误

fhg3lkii

fhg3lkii1#

为了获得更好的性能,可以使用cursor而不是chunkall。查询将是这样的:$accounts = Acc_account::where('cat', 2)->cursor();或者您可以使用LazyCollection来处理内存问题。请注意,所有这些方法并不能保证完全解决你的问题,因为我不认为大数据将是一个很好的解决方案的PDF也许Excel或CSV会更好。

相关问题