Paginator

Controller – sortowanie po powiązanych modelach

$this->paginate = [
    'sortableFields' => [
        'Posts.title',
        'Authors.name',
    ],
];

Limit na stronę – lista wyboru – domyślnie 100

echo $this->Paginator->limitControl([25 => 25, 50 => 50], 100);

Widok – index.php

<th><?= $this->Paginator->sort('name', 'Nazwa', ['escape' => false]) ?></th>

Helper – definicja szablonu

config/paginator-templates.php

<?php
return [
  'number'     => '<li class="page-item"><a href="{{url}}" class="page-link">{{text}}</a></li>',
  'current'    => '<li class="page-item active"><a href="javascript:void()" class="page-link">{{text}}</a></li>',
  'prevActive' => '<li class="page-item page-indicator"> 
      <a href="{{url}}" class="page-link"><i class="fas fa-angle-left"></i></a>
    </li>',
  'prevDisabled' => '',
  'nextActive'   => '<li class="page-item page-indicator">
      <a href="{{url}}" class="page-link"><i class="fas fa-angle-right"></i></a>
    </li>',
  'nextDisabled' => '',
];

AppView.php

public function initialize(): void
{
    ...
    $this->loadHelper('Paginator', ['templates' => 'paginator-templates']);
}