Как сделать такую расширенную пагинацию в yii2?

В Yii2 для создания расширенной пагинации можно воспользоваться компонентом "yiidataPagination". Расширенная пагинация может включать в себя функции, такие как отображение количества элементов на странице, счетчик страниц, кнопки "предыдущая" и "следующая", а также возможность задания кастомного шаблона для отображения пагинации.

Первым шагом является создание экземпляра компонента "yiidataPagination" и настройка его параметров. Например, для отображения 10 элементов на странице и ограничения вывода до 100 элементов, вы можете использовать следующий код:

$pagination = new yiidataPagination([
    'pageSize' => 10,
    'totalCount' => 100,
]);

Далее, вы можете получить данные для текущей страницы с помощью метода "getModels()" модели данных, передавая в него текущий экземпляр пагинации:

$models = YourModel::find()
    ->offset($pagination->offset)
    ->limit($pagination->limit)
    ->all();

Теперь у вас есть массив моделей данных для текущей страницы.

Для отображения пагинации на странице можно использовать виджет "yiiwidgetsLinkPager". В файле представления добавьте следующий код:

use yiiwidgetsLinkPager;

<?= LinkPager::widget([
    'pagination' => $pagination,
]) ?>

По умолчанию виджет "LinkPager" отобразит кнопки для перехода на предыдущую и следующую страницы, а также счетчик текущей страницы и общего количества страниц. Однако, если вы хотите настроить отображение пагинации, вы можете использовать параметр "options" виджета, чтобы передать кастомные параметры CSS классов.

Например, если вы хотите применить свой CSS стиль к пагинации, вы можете сделать это следующим образом:

<?= LinkPager::widget([
    'pagination' => $pagination,
    'options' => [
        'class' => 'custom-pagination',
    ],
]) ?>

В итоге, вы сможете создать расширенную пагинацию в Yii2, которая будет отображать нужные вам элементы и соответствовать стилю вашего веб-приложения.