提问人:Kyuzzero 提问时间:8/14/2023 更新时间:8/14/2023 访问量:36
如何使用 Laravel 循环和插入基于页面的数据?
How can I looping and insert data based on pages using Laravel?
问:
我想在每个分页的数据库中执行插入操作,从第一页到最后一页,并在最后一页完成后完成。 但问题是,我尝试了这段代码,但它只循环了 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';
}
答:
0赞
Pippo
8/14/2023
#1
尝试像这样更改 dumData() 方法:
public function dumData($pageNumber)
{
$data = $this->data->paginate(5, ['*'], 'page', $pageNumber);
return $data;
}
还可以考虑使用块来获取数据
1赞
Matthew Bradley
8/14/2023
#2
分页通常保留用于前端,以显示结果并提供转到下一页的链接。您在这里寻找的是块方法,它将拆分您的集合的每个结果。n
除了优化的方法外,您还希望遵循以下结构:
$chunks = $collection->chunk(5);
foreach ($chunks as $chunk) {
foreach ($chunk as $item) {
//Insert here
}
}
评论