我在一个数据库中有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);