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