我需要查询我的查询,因为它使PHP内存不足,但下面的代码只是转储null
:
$chunked = $query->chunk(25, function ($events) {
//dd($events);
});
dd($chunked);
但是,当我执行以下操作时,它会转储第一个25块:
$chunked = $query->chunk(25, function ($events) {
dd($events);
});
//dd($chunked);
无法将dd($events);
更改为return $events
,return true
之类的内容,迭代每个块中的每个项目并返回其中 - 可以正常工作。
我是愚蠢/做错了什么,或者这不应该像它应该的那样工作?
答案 0 :(得分:1)
chunk()
是一个帮助方法,可以在Query Builder或Eloquent Builder的实例上使用。在这两种情况下,该方法都会返回void
:
这意味着您的$chunked
变量将始终为空。
您需要采用的语法如下:
查询构建器
DB::table('users')->chunk(100, function($users) {
foreach ($users as $user) {
//
}
});
<强>锋强>
Flight::chunk(200, function ($flights) {
foreach ($flights as $flight) {
//
}
});
基本上,您需要做的就是在chunk()
的回调函数中使用循环来修改结果。