xxxxxxxxxx
php artisan vendor:publish --tag=laravel-pagination
Is Styles not correct
xxxxxxxxxx
just make sure you have this in your AppServiceProvider.
use Illuminate\Pagination\Paginator;
public function boot()
{
Paginator::useBootstrap();
}
and you're good to go.
xxxxxxxxxx
@if ($paginator->hasPages())
<ul class="pagination pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li class="disabled"><span>«</span></li>
@else
<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">«</a></li>
@endif
@if($paginator->currentPage() > 3)
<li class="hidden-xs"><a href="{{ $paginator->url(1) }}">1</a></li>
@endif
@if($paginator->currentPage() > 4)
<li><span></span></li>
@endif
@foreach(range(1, $paginator->lastPage()) as $i)
@if($i >= $paginator->currentPage() - 2 && $i <= $paginator->currentPage() + 2)
@if ($i == $paginator->currentPage())
<li class="active"><span>{{ $i }}</span></li>
@else
<li><a href="{{ $paginator->url($i) }}">{{ $i }}</a></li>
@endif
@endif
@endforeach
@if($paginator->currentPage() < $paginator->lastPage() - 3)
<li><span></span></li>
@endif
@if($paginator->currentPage() < $paginator->lastPage() - 2)
<li class="hidden-xs"><a href="{{ $paginator->url($paginator->lastPage()) }}">{{ $paginator->lastPage() }}</a></li>
@endif
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li><a href="{{ $paginator->nextPageUrl() }}" rel="next">»</a></li>
@else
<li class="disabled"><span>»</span></li>
@endif
</ul>
@endif
xxxxxxxxxx
php artisan vendor:publish --tag=laravel-pagination
OR
use Illuminate\Pagination\Paginator;
public function boot()
{
Paginator::defaultView('your-pagination-view-name');
}
xxxxxxxxxx
<?php
// config
$link_limit = 7; // maximum number of links (a little bit inaccurate, but will be ok for now)
?>
@if ($paginator->lastPage() > 1)
<ul class="pagination">
<li class="{{ ($paginator->currentPage() == 1) ? ' disabled' : '' }}">
<a href="{{ $paginator->url(1) }}">First</a>
</li>
@for ($i = 1; $i <= $paginator->lastPage(); $i++)
<?php
$half_total_links = floor($link_limit / 2);
$from = $paginator->currentPage() - $half_total_links;
$to = $paginator->currentPage() + $half_total_links;
if ($paginator->currentPage() < $half_total_links) {
$to += $half_total_links - $paginator->currentPage();
}
if ($paginator->lastPage() - $paginator->currentPage() < $half_total_links) {
$from -= $half_total_links - ($paginator->lastPage() - $paginator->currentPage()) - 1;
}
?>
@if ($from < $i && $i < $to)
<li class="{{ ($paginator->currentPage() == $i) ? ' active' : '' }}">
<a href="{{ $paginator->url($i) }}">{{ $i }}</a>
</li>
@endif
@endfor
<li class="{{ ($paginator->currentPage() == $paginator->lastPage()) ? ' disabled' : '' }}">
<a href="{{ $paginator->url($paginator->lastPage()) }}">Last</a>
</li>
</ul>
@endif
xxxxxxxxxx
'data' => [
'meta' => [
'totalPages' => ceil($pagination->totalRecords / $pagination->perPage),
'currentPage' => $pagination->currentPage + 1,
'totalRecords' => $pagination->totalRecords,
'recordsOnCurrentPage' => count($records),
'recordFrom' => ($pagination->currentPage * $pagination->perPage) + 1,
'recordTo' => ($pagination->currentPage * $pagination->perPage) + count($records),
],
'records' => $records,
xxxxxxxxxx
$itemsPaginated = Model::where(function ($query) use ($request) {
if ($request->id)
$query->where('id', $request->id);
})
->offset($request->input('limit', 10) * $request->input('page', 1))
->paginate($request->input('limit', 10));
$itemsTransformed = $itemsPaginated
->getCollection()
->map(function ($item) {
return [
'id' => $item->id,
'title' => $item->title,
'key' => $item->key,
'type' => $item->type,
];
})->toArray();
$data = new \Illuminate\Pagination\LengthAwarePaginator(
$itemsTransformed,
$itemsPaginated->total(),
$itemsPaginated->perPage(),
$itemsPaginated->currentPage(),
[
'path' => FacadesRequest::url(),
'query' => [
'page' => $itemsPaginated->currentPage()
]
]
);
return response()->json(['status' => 'success', 'data' => $data]);