Rudra FrameworkRudra Framework

Для вызова в контроллере необходимо указывать:

use Rudra\Pagination;
use App\Containers\Web\Models\Test;

Необходимо задать данные для постраничного разбиения, где 1 - текущая страница, 10 - количество выводимых материалов,  Test::numRows() - общее количество строк в таблице.

$pagination = new Pagination(1, 10, Test::numRows());

Результат:

^ Rudra\Pagination {#39 ▼
  -page: 0
  -count: 1
  -perPage: 10
}

Получение результата запроса для первой страницы из базы данных:

$paginated = Test::getAllPerPage($pagination);

С указанием своего набора полей:

$paginated = Test::getAllPerPage($pagination, 'id, title');

Получение массива с номерами страниц:

$pagination->getLinks();

Для отображения в шаблоне необходимо передать следующие параметры, links - массив с полученных страниц, current_page - текущая страница, page_limit - количество отображаемых ссылок.

data([

    "content" => view("index", [
        "rows"         => $paginated,
        "links"        => $pagination->getLinks(),
        "current_page" => $page,
        "page_limit"   => 2,

    ]),
]);

Пример формирования html для UIKit

public static function renderLinks(array $links, string $page, $pg_limit, $uri)
{
$last = array_key_last($links) + 1;
?>
<!-- FIRST -->
<?php if ($links[0] != $page): ?>
<li class="page-item"><a href="<?= Rudra::config()->get("url") ?><?= $uri . $links[0] ?>" class="page-link"><<</a></li>
<?php endif; ?>
<?php foreach ($links as $link): ?>
<?php if (($link < $page) && ($link >= ($page - $pg_limit))): ?>
<li class="page-item"><a href="<?= Rudra::config()->get("url") ?><?= $uri . $link ?>" class="page-link"><?= $link ?></a></li>
<?php endif; ?>

<?php if ($link == $page): ?>
<li class="page-item uk-active"><a href="<?= Rudra::config()->get("url") ?><?= $uri . $link ?>" class="page-link"><?= $link ?></a></li>
<?php endif; ?>

<?php if (($link > $page) && ($link <= ($page + $pg_limit))): ?>
<li class="page-item"><a href="<?= Rudra::config()->get("url") ?><?= $uri . $link ?>" class="page-link"><?= $link ?></a></li>
<?php endif; ?>
<?php endforeach; ?>
<!-- LAST -->
<?php if ($last != $page): ?>
<li class="page-item"><a href="<?= Rudra::config()->get("url") ?><?= $uri . $last ?>" class="page-link">>></a></li>
<?php endif; ?>
<?php
}