首页 > 解决方案 > Laravel分页不刷新页面

问题描述

目前,我正在从数据库中提取 8 条随机记录(然后将它们保存在数组中),然后使用 Laravel Pagination 将它们分成每页 4 条记录。

路线

Route::get('/userInfo','MainController@getUserInfo');

控制器

class MainController extends Controller{
    function getDatabaseInformation{
          // Get information from the database. Return array
    }

    function getUserInfo {
           $userData = $this->getDatabaseInformation();
           $data = $this->paginate($userData );
           $data->withPath('userInfo');
           return view('userDataPage',['userData'=>$data]);
    }

    function paginate($items, $perPage = 4, $page = null, $options = [])
    {
        $page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
        $items = $items instanceof Collection ? $items : Collection::make($items);
        return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
    }
}

userDataPage.blade.php

<!DOCTYPE html>
<html>
 <head>
  <title>Q5S1Q2</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <style type="text/css">
   .box{
    width:1000px;
    margin:0 auto;
    border:1px solid #ccc;
   }
   .title{
      text-align:center;
   }
  </style>
 </head>
 <body>
  <br />
  <div class = "title">  <h1> User list </h1></div>
  <div class="container box">
      @foreach($userData as $data)
      <div>
        <p><strong>{{$post->getAddress()}}</strong><br></p>
        <span>{{$post->getFirstName()}}</span>
        <span>{{$post->getLastName()}}</span>
        <span>{{$post->getOccupation()}}</span>
      <br>
      </div>
      @endforeach
  </div>
  <div class = "title"> {{ $userData ->links() }}</div>
  </div>
 </body>
</html>

这成功地显示了除以 2 页的记录。但是,当我在页面之间切换时,它会刷新整个内容 - 不会保留我的“旧”拉记录。我认为每当我在页面之间切换时函数getUserInfo会再次运行,从而有不同的记录(因为我随机选择它们)?

有人遇到过同样的问题吗?我该如何解决这个问题,或者分页不是正确的方法?

(我正在考虑拥有 2 个不同的刀片文件(用于第 1 页和第 2 页)并有一个全局变量来决定显示哪个页面)

标签: laravellaravel-pagination

解决方案


推荐阅读