如何解决如何遍历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 包并在您的 模型
中使用该包引用-
创建产品模型并使用 App\Filters\QueryFilter;
-
在产品模型中使用下面的函数
/* 过滤器作用域 */
公共函数 scopeFilter($query,QueryFilter $filters)
{
return $filters->apply($query);
}
-
在控制器或作业中
$limit = request()->limit ?? 10;
$products = Product::filter($filter)->paginate($limit);
-
路线应该是获取产品-> /api/products?limit=10&page=1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。