Количество страниц для пагинации Yii2

232
06 октября 2017, 18:19

Подскажите пожалуйста, как ограничить колличество страниц доступных для пагинации. Т.е. есть какие-то входные параметры, по которым мы делаем ваборку. В результате у нас получается допустим 1000 записей. На одной странице выводится 10 записей, таким образом всего выходит 100 страниц. Как сделать, чтобы было доступно только 20 страниц. Не могу понять, толи нужно что-то указать в QueryBuilderе, толи в ActiveDataProvidere, толи в Pager`e. Не могу нагуглить, как подобное реализуется. Наверно потому что не могу правильно сформировать вопрос.

Answer 1

Судя по докам за это отвечает pager, у которого есть поле maxButtonCount

Пример с GridView

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'summaryOptions' => ['class' =>'dfenx_pagination_summary',],
    'pager' => ['options' => ['class' => 'pagination pull-right']],
    'filterModel' => $searchModel,
    'pager' => [
        'maxButtonCount'=>3,  // вот тут количество кнопок
        ],
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

ну или если отдельно

echo LinkPager::widget([
    ...
    'maxButtonCount' => 3,
    ...
]);
Answer 2

Нашел ответ. Как правильно подсказали, это называется "Ограничение pagination". Нужно было просто для ActiveDataProvider'a прописать для свойство totalCount значение равное "количество записей на странице * максимальное число страниц". Спасибо за помощь.

READ ALSO
Глобальное подключение к БД

Глобальное подключение к БД

Создал configphp в нем прописал подключение к БД:

226
Проверка капчи в форме обратной связи

Проверка капчи в форме обратной связи

Есть отдельно проверка формы обратной связи и проверка капчиКак вставить проверку капчи в код проверки формы? Вот код проверки формы обратной...

167
Запись файлов в бд

Запись файлов в бд

Можно ли записать в бд txt файл? или только его содержимое?

182