Пагинация Laravel: меньше элементов только на первой странице? - PullRequest
0 голосов
/ 08 июля 2019

Я использую простую нумерацию страниц Laravel 5.6, которая просто отображает 25 элементов на странице.

Однако мне нужно обновить этот код для отображения 40 элементов на странице 2 и выше. И все еще сохраняя 25 пунктов на первой странице.

Это мой текущий красноречивый запрос laravel в контроллере.

$items = Item::where('active',1)
    ->with(['location', 'spec'])
    ->orderBy('id','ASC')
    ->paginate(25);

Просмотр (добавлено после комментария @ mare96)

@foreach($items as $item)
  ID: {{$item->id}}<br>
  Name: {{$item->name}}<br>
  Description: {{$item->description}}<br>
@endforeach

Как я могу это сделать? Спасибо!

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете добавить в свой контроллер что-то вроде этого:

//functName/25 
public function functName($perPage)
{
     $items = Item::where('active',1)
    ->with(['location', 'spec'])
    ->orderBy('id','ASC')
    ->paginate($perPage);
}

Для этого вам необходимо изменить маршрут: Route::get('/functName/{perPage}', ControllerName@functName);

И когда вы активируете свою ссылку на страницы, сделайте что-то вроде этого:

@if ($item->current_page === 2)
   {{ $perPage = 40 }}
@else
   {{ $perPage = 25 }}
@endif...

И, наконец, отправьте $perPage вашему контроллеру. И посмотри, что получится.

Я не уверен, что это самый простой способ, но попробуйте.

Удачи.

...