在laravel分页中制作干净的网址

时间:2018-08-30 08:01:48

标签: php laravel laravel-5 pagination

通过此网址:

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

此网址:

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

我在下面有一个带有分页的代码示例,我想在分页中设置url的格式,看起来很干净,就像前面的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 :(得分:0)

您需要覆盖框架文件。但是,与此相反。您可以使用以下软件包:https://github.com/DeSmart/pagination

编辑: 我不知道该软件包支持最新的Laravel版本。但是您可以分叉并重新使用它。