我想在每个分页页面上执行向数据库插入操作,从第一页开始到最后一页结束,直到最后一页完成。 但问题是,我尝试了这段代码,但它只循环遍历了5个数据(根据第一个分页),而且不停地进行下去。
感谢任何解决我的问题的人。:)
public function __construct()
{
$this->data = new Data();
}
public function dumData()
{
$data = $this->data->paginate(5);
return $data;
}
public function test()
{
$page = 1;
do {
$dataPaginated = $this->dumData($page);
$data = $dataPaginated->items();
foreach ($data as $result) {
DB::table('test')->insert([
'name' => $result->name,
'data' => json_encode($result),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
}
$page++;
$nextpage = $dataPaginated->nextPageUrl();
} while ($nextpage);
return 'success';
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
尝试将您的dumData()方法更改为以下内容:
public function dumData($pageNumber) { $data = $this->data->paginate(5, ['*'], 'page', $pageNumber); return $data; }还可以考虑使用chunks来获取数据