Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A powerful PHP pagination engine to take care of pagination hassles

License

NotificationsYou must be signed in to change notification settings

iranianpep/paginator

Repository files navigation

A powerful PHP pagination engine to take care of pagination hassles

Build StatusMaintainabilityTest CoverageStyleCIIssue CountCodacy Badge

Server Requirements

  • PHP >= 7.1

Installation

  • Using Composer get the latest version:
composer require paginator/paginator

Example

The simplest way to use Paginator is as follow:

$totalItems = 3;$perPage = 1;$currentPage = 1;$url = 'https://example.com';$paginator = new Paginator($totalItems, $perPage, $currentPage, $url);if ($paginator->hasPages() === true) {    if ($paginator->getPreviousPage()) {        $previousPageUrl = $paginator->getPreviousPageUrl();        echo "<li><a href='{$previousPageUrl}'>Previous</a></li>";    }    foreach ($paginator->getPages() as $page) {        if (!$page instanceof Page) {            continue;        }        $pageNumber = $page->getNumber();        $pageUrl = $page->getUrl();        $cssClass = $page->isCurrent() === true ? 'active' : '';        echo "<li class='{$cssClass}'><a href='{$pageUrl}'>{$pageNumber}</a></li>";    }    if ($paginator->getNextPage()) {        $nextPageUrl = $paginator->getNextPageUrl();        echo "<li><a href='{$nextPageUrl}'>Next</a></li>";    }}

If you are using any MVC framework like Laravel instantiate an object from Paginator class in the controller and pass it to the view:

Controller

public function index(Request $request){    $totalProductsNumber = 10;    $perPage = 10;    $currentPageNumber = (int) $request->get('page') > 0 ? $request->get('page') : 1;    $url = $request->fullUrl();        $paginator = new Paginator($totalProductsNumber, $perPage, $currentPageNumber, $url);    // you should use the offset in your database query to get a slice of data    $offset = $paginator->calculateDatabaseOffset($currentPageNumber);    return view('view.index', [        'paginator' => $paginator    ]);}

View (Laravel Blade)

@if ($paginator->hasPages())    <ul>        @if ($paginator->isOnFirstPage() === true)            <li><span>&laquo;</span></li>        @else            <li><a href="{{ $paginator->getPreviousPageUrl() }}" rel="prev" title="Previous">&laquo;</a></li>        @endif        @php            $hiddenRanges = $paginator->getHiddenRanges();        @endphp        @foreach ($paginator->getPages() as $page)            {{-- "Three Dots" Separator --}}            @if ((isset($hiddenRanges[0]) && $page->getNumber() === $hiddenRanges[0]['start']) ||            (isset($hiddenRanges[1]) && $page->getNumber() === $hiddenRanges[1]['start']))                <li><span>...</span></li>            @elseif((isset($hiddenRanges[0]) && $page->getNumber() > $hiddenRanges[0]['start'] && $page->getNumber() <= $hiddenRanges[0]['finish']) ||            (isset($hiddenRanges[1]) && $page->getNumber() > $hiddenRanges[1]['start'] && $page->getNumber() <= $hiddenRanges[1]['finish']))                @continue            @else                @if ($page->isCurrent())                    <li><span>{{ $page->getNumber() }}</span></li>                @else                    <li><a href="{{ $page->getUrl() }}" title="Page">{{ $page->getNumber() }}</a></li>                @endif            @endif        @endforeach        @if ($paginator->isOnLastPage() === false)            <li><a href="{{ $paginator->getNextPageUrl() }}" rel="next" title="Next">&raquo;</a></li>        @else            <li><span>&raquo;</span></li>        @endif    </ul>@endif

About

A powerful PHP pagination engine to take care of pagination hassles

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp