微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何遍历laravel分页器中的每个页面

如何解决如何遍历laravel分页器中的每个页面

我使用 Laravel 分页从表中检索数据,我能够获取第一页的项目,但如何遍历每个页面并从每个页面获取项目

这是我的代码

public function handle()
{
    $productsInstance = Products::query()->paginate(10);
    $totalPages = $productsInstance->lastPage();

    for ($i=1; $i <= $totalPages; $i++) {
        foreach ($productsInstance as $productInstance) {
            $items = $productInstance->items;

            foreach ($items as $item) {
                // operation performed on each item
            }
        }
    }
}

我正在查询分页的产品表有超过 200k 的记录,我可以在第一页上执行 foreach 操作但是如何从每个页面获取项目

解决方法

您应该安装 QueryFilter 包并在您的 模型

中使用该包引用
  1. 创建产品模型并使用 App\Filters\QueryFilter;

  2. 在产品模型中使用下面的函数

    /* 过滤器作用域 */

    公共函数 scopeFilter($query,QueryFilter $filters)

    {

    return $filters->apply($query);
    

    }

  3. 在控制器或作业中

    $limit = request()->limit ?? 10;

    $products = Product::filter($filter)->paginate($limit);

  4. 路线应该是获取产品-> /api/products?limit=10&page=1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。