相关疑难解决方法(0)

雄辩的chunk()缺少了一半的结果

我对Laravel的ORM Eloquent chunk()方法有疑问.它错过了一些结果.这是一个测试查询:

$destinataires = Destinataire::where('statut', '<', 3)
    ->where('tokenized_at', '<', $date_active)
    ->chunk($this->chunk, function ($destinataires) {
        foreach($destinataires as $destinataire) {
            $this->i++;
        }
    }
echo $this->i;
Run Code Online (Sandbox Code Playgroud)

它给出124838结果.

但是:

$num_dest = Destinataire::where('statut', '<', 3)
    ->where('tokenized_at', '<', $date_active)
    ->count();
echo $num_dest;
Run Code Online (Sandbox Code Playgroud)

得到249676,所以只有TWICE作为第一个代码示例.

我的脚本应该编辑数据库中的所有匹配记录.如果我多次启动它,它每次只分发剩余记录的一半.

我尝试使用DB :: table()而不是Model.我试图添加 - > take(20000),但似乎没有考虑到.我用 - > toSql()回显了查询,并且eveything似乎没问题(当我添加 - > take()参数时添加了LIMIT子句).

有什么建议 ?

php laravel eloquent laravel-5

15
推荐指数
3
解决办法
4728
查看次数

标签 统计

eloquent ×1

laravel ×1

laravel-5 ×1

php ×1