@KidsBout

Как сделать автоматическое добавление кнопок первая страница, последняя страница в пагинации?

На страницах выводятся таблицы через GridView::widget, чтобы всем не прописывать
'pager' => [
        'firstPageLabel' => 'First',
        'lastPageLabel' => 'Last',
    ],


хочу это как-то автоматизировать. Нашел метод getLinks в Pagination.php, там как раз написано походу то что нужно
public function getLinks($absolute = false)
{
    $currentPage = $this->getPage();
    $pageCount = $this->getPageCount();
    $links = [
        Link::REL_SELF => $this->createUrl($currentPage, null, $absolute),
    ];
    if ($currentPage > 0) {
        $links[self::LINK_FIRST] = $this->createUrl(0, null, $absolute);
        $links[self::LINK_PREV] = $this->createUrl($currentPage - 1, null, $absolute);
    }
    if ($currentPage < $pageCount - 1) {
        $links[self::LINK_NEXT] = $this->createUrl($currentPage + 1, null, $absolute);
        $links[self::LINK_LAST] = $this->createUrl($pageCount - 1, null, $absolute);
    }

    return $links;
}

Но как и где правильно вызвать данный метод?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
не нужно вызывать никакие методы ибо это будет костыльное решение.
В LinkPager (который использует GridView) по умолчанию в свойствах firstPageLabel и lastPageLabel стоит значение false - т.е. не отображать эти кнопки.
Если Вы хотите избавится от дублирования кода Вы можете просто создать свой класс GridView наследуемый от стандартного и в нем изменить значения соответствующих свойств по умолчанию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы