Испытываем в действии
Чтобы увидеть, как работает весь вышеприведённый код, перейдите по следующей ссылке в своём браузере:
http://hostname/index.php?r=country%2Findex
В начале вы увидите страницу, показывающую пять стран. Под странами вы увидите пагинатор с четырьмя кнопками. Если вы кликните по кнопке "2", то увидите страницу, отображающую другие пять стран из базы данных: вторая страница записей. Посмотрев внимательней, вы увидите, что URL в браузере тоже сменилось на
http://hostname/index.php?r=country%2Findex&page=2
За кадром, [[yii\data\Pagination|Pagination]] предоставляет всю необходимую функциональность для постраничной разбивки набора данных:
- В начале [[yii\data\Pagination|Pagination]] показывает первую страницу, которая отражает SELECT запрос стран с параметрами
LIMIT 5 OFFSET 0
. Как результат, первые пять стран будут получены и отображены. - Виджет [[yii\widgets\LinkPager|LinkPager]] выводит кнопки страниц используя URL'ы, созданные [[yii\data\Pagination::createUrl()|Pagination]]. Эти URL'ы будут содержать параметр запроса
page
, который представляет различные номера страниц. - Если вы кликните по кнопке "2", сработает и обработается новый запрос для маршрута
country/index
. Таким образом новый запрос стран будет иметь параметрыLIMIT 5 OFFSET 5
и вернет следующие пять стран для отображения.