关于 Eloquent 集合 each 方法执行总是剩余 1000 的或 1000 的整数倍条记录不处理的问题.

Laravel 版本 5.8.35
php版本 7.2.18

问题描述:
在tinker中执行以下代码

    News::whereIn('channel_id', [10857])->each(function($item){
        $item->delete();
    })

集合记录总计 2285 条,发现执行后剩余 1000 条未被删除
再次执行后 所有记录被处理.
印象中 也有时候会有留下10000条记录的情况
这样的情况不知道大家有没有遇到过,我查了半天没有结果.

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

这里应该使用 chunkById。

chunk 和 each 都不行,因为你这里涉及到了删除。

4年前 评论
qq380998880 (楼主) 4年前
讨论数量: 1
leo

这里应该使用 chunkById。

chunk 和 each 都不行,因为你这里涉及到了删除。

4年前 评论
qq380998880 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!