Я получаю некоторые данные из базы данных и делаю пагинацию следующим вызовом:
$itemsList = DB::Table('items')->paginate(10);
Каждый элемент данных имеет дату истечения срока действия, с которой я вычисляю количество оставшихся дней и возвращаю в виде массива с функцией, которую я написал. Мне нужно как-то интегрировать этот массив в вызов нумерации страниц, чтобы на каждой странице отображалось правильное значение оставшихся дней. На данный момент у меня в файле блейда есть что-то вроде этого:
<?php
$i = 0;
?>
@foreach ($itemsList as $item)
<tr>
<td>{{ $item->item_name }}</td>
<td>{{ $item->item_user }}</td>
<td>{{$left_days[$i++]}}</td>
При использовании этого метода первая страница нумерации страниц работает нормально, а массив left_days ссылается на правильный элемент в списке. Однако на других страницах значения left_days относятся к элементам первой страницы, поскольку значение i начинается с 0 при каждом запуске.
Я думаю, что мне нужно добавить массив left_days в коллекцию перед вызовом разбиения на страницы, но я не смог понять, как это сделать.
Чтобы быть более точным, ниже приведен результат dd в $ itemList:
LengthAwarePaginator {#292 ▼
#total: 94
#lastPage: 10
#items: Collection {#277 ▼
#items: array:10 [▼
0 => {#276 ▼
+"id": 1
+"item_name": "sadasd"
+"item_user": "sadas"
+"expiry_date": "2019-06-26"
+"last_modified_by": "someone"
+"created_at": "2019-06-18 15:19:33"
+"updated_at": "2019-06-18 15:19:33"
}
1 => {#270 ▶}
2 => {#279 ▶}
3 => {#280 ▶}
4 => {#281 ▶}
5 => {#282 ▶}
6 => {#283 ▶}
7 => {#284 ▶}
8 => {#285 ▶}
9 => {#286 ▶}
]
}
#perPage: 10
#currentPage: 1
#path: "http://localhost:8000/licenses"
#query: []
#fragment: null
#pageName: "page"
+onEachSide: 3
#options: array:2 [▶]
}
Мне кажется, мне нужен способ вставки массива в правильные места, чтобы у каждого элемента в коллекции также было поле left_days, которое рассчитывается до нумерации страниц.