我在一个数据库中有4万个条目,我试图用一个简单的laravel获取来调用它们。

$domains = Domain::where("available", 1)->limit(1000)->get();
return view('domains')
    ->with("domains", $domains);

这行最多可以有几千行。但如果我没有设置通话限制,我会收到500个错误。我不知道为什么,我也不知道该在哪里寻找来避免这个问题,我似乎在apache日志中找不到任何东西,或者在存储中找不到laravel自己的日志。

最佳答案

您可以利用->chunk命令来避免此问题。

Domain::where('available', 1)->chunk(200, function($domain){
    //do whatever you would normally be doing with the rows you receive
    // $domain stuff
});

chunk命令的目的是在模型的每次X迭代之后释放内存。在这个例子中,我展示了200个。
侧注-由于chunk方法使用Closure作为第二个参数,请确保use($your_varaibles);

10-06 03:10