搜索

首页  >  问答  >  正文

使用Laravel在页面循环并插入数据的方法

<p>我想在每个分页页面上执行向数据库插入操作,从第一页开始到最后一页结束,直到最后一页完成。 但问题是,我尝试了这段代码,但它只循环遍历了5个数据(根据第一个分页),而且不停地进行下去。</p> <p>感谢任何解决我的问题的人。:)</p> <pre class="brush:php;toolbar:false;">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'; }</pre> <p><br /></p>
P粉282627613P粉282627613468 天前637

全部回复(1)我来回复

  • P粉642920522

    P粉6429205222023-08-16 17:41:36

    尝试将您的dumData()方法更改为以下内容:

    public function dumData($pageNumber)
    {
        $data = $this->data->paginate(5, ['*'], 'page', $pageNumber);
        return $data;
    }

    还可以考虑使用chunks来获取数据

    回复
    0
  • 取消回复