Laravel разбивка на страницы без ссылки sh страница - PullRequest
0 голосов
/ 05 августа 2020

В настоящее время я извлекаю 8 случайных записей из базы данных (и затем сохраняю их в массиве), а затем использую Laravel Pagination, чтобы разделить их на 4 записи на каждой странице.

Route

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) и иметь глобальную переменную, чтобы решить, какую страницу показывать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...