Laravel块返回null

时间:2015-07-18 08:46:50

标签: laravel eloquent laravel-5

我需要查询我的查询,因为它使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 $eventsreturn true之类的内容,迭代每个块中的每个项目并返回其中 - 可以正常工作。

我是愚蠢/做错了什么,或者这不应该像它应该的那样工作?

1 个答案:

答案 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()的回调函数中使用循环来修改结果。