сделать чистый URL в пагинации - PullRequest
0 голосов
/ 30 августа 2018

Из этого URL:

http://localhost/testing/public/?page=2

На этот URL:

 http://localhost/testing/public/page/2

У меня есть пример, подобный приведенному ниже, с нумерацией страниц, и я хочу отформатировать URL в своей нумерации страниц.

$items = [
    'item1',
    'item2',
    'item3',
    'item4',
    'item5',
    'item6',
    'item7',
    'item8',
    'item9',
    'item10'
];

// Get current page form url e.x. &page=1
$currentPage = LengthAwarePaginator::resolveCurrentPage();

// Create a new Laravel collection from the array data
$itemCollection = collect($items);

// Define how many items we want to be visible in each page
$perPage = 1;

// Slice the collection to get the items to display in current page
$currentPageItems = $itemCollection->slice(($currentPage * $perPage) - $perPage, $perPage)->all();

// Create our paginator and pass it to the view
$paginatedItems= new LengthAwarePaginator($currentPageItems , count($itemCollection), $perPage);

// set url path for generted links
$paginatedItems->setPath($request->url());

return view('items_view', ['items' => $paginatedItems]);

Пример просмотра:

<h1>Items List</h1>     
<ul>
    @foreach ($items as $item) 
        <li> {{ $item }} </li>
    @endforeach
</ul>

<div>
    {{ $items->links() }}
</div>

Есть какое-нибудь решение для этих проблем?

1 Ответ

0 голосов
/ 30 августа 2018

Вам необходимо переопределить файлы фреймворка. Но вместо этого. Вы можете использовать этот пакет: https://github.com/DeSmart/pagination

EDIT: Я не знаю, что пакет поддерживает последнюю версию Laravel. Но вы можете раскошелиться и использовать его повторно.

...