Как в Yii2 GridView виджете добавить в пагинацию свою стороннюю кнопку?

В Yii2 GridView виджете пагинация по умолчанию предлагает стандартные кнопки для переключения между страницами. Однако, если вы хотите добавить свою стороннюю кнопку в пагинацию, вы можете использовать следующий подход.

1. Создайте свой класс наследующий класс yiigridLinkPager. Например, CustomLinkPager.

namespace appwidgets;

use yiihelpersHtml;

class CustomLinkPager extends yiiwidgetsLinkPager
{
    // Переопределение метода для отрисовки каждой кнопки
    protected function renderPageButton($label, $page, $class, $disabled, $active)
    {
        if ($page == $this->maxButtonCount - 1 && $this->nextPageLabel !== false) {
            // добавление сторонней кнопки после максимальной кнопки
            return Html::tag('li', $this->nextPageLabel, ['class' => 'custom-button']) . parent::renderPageButton($label, $page, $class, $disabled, $active);
        }

        return parent::renderPageButton($label, $page, $class, $disabled, $active);
    }
}

В классе CustomLinkPager мы переопределяем метод renderPageButton(), где мы добавляем свою стороннюю кнопку с классом custom-button.

2. В представлении, где вы используете GridView, укажите новый класс пагинации CustomLinkPager.

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'pager' => [
        'class' => 'appwidgetsCustomLinkPager',
    ],
    // остальные настройки GridView
]) ?>

Теперь ваша сторонняя кнопка будет добавлена в пагинацию после максимальной кнопки. Вы можете настроить внешний вид кнопки с помощью CSS.