Изменить количество записей на странице в LinkPager

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
i-programmer
Сообщения: 59
Зарегистрирован: 2015.08.24, 18:50

Изменить количество записей на странице в LinkPager

Сообщение i-programmer » 2019.04.16, 14:38

Есть свой виджет LinkPager, который наследуется от yii\widgets\LinkPager.

Код: Выделить всё

	namespace app\widgets\grid;

	use yii\widgets\LinkPager as BaseLinkPager;

	class LinkPager extends BaseLinkPager {

		public function init() {
			parent::init();

			$this->pagination->pageSize = 2;
		}

		public function run() {
			return parent::run();
		}
	}

Есть грид, который ссылается на него:

Код: Выделить всё

	<?= GridView::widget([
		'dataProvider' => $dataProvider,
		'filterModel' => $searchModel,
		'columns' => $gridColumns,
		'summary' => '',
		'pager' => ['class' => 'app\widgets\grid\LinkPager']
	]); ?>
в итоге при загрузке грида на первой странице выводится не 3 записи, как задано выше $this->pagination->pageSize = 3;, а 20, как это по умолчанию задано в $pagination в yii\widgets\LinkPager. Но, если в адресной строке дописать GET зараметры:
?page=1&per-page=3 - все сработает.

Вопрос: что я должен прописать в `LinkPager`, чтобы сразу по дефолту ограничить количство выводимых записей? $this->pagination->setPageSize(3); и $this->pagination->defaultPageSize - тоже пробовал. Не отображает по три записи и всё тут

i-programmer
Сообщения: 59
Зарегистрирован: 2015.08.24, 18:50

Re: Изменить количество записей на странице в LinkPager

Сообщение i-programmer » 2019.04.16, 16:32

Почитав везде где можно понял, что минимально можно описать в конфиге через DI

Код: Выделить всё

'container' => [
		'definitions' => [
			'yii\data\Pagination' => ['defaultPageSize' => 10,
		],
	],

Жалко это выглядит как костыль ибо в LinkPager можно задать абсолютно любые параметры пагинатора, а вот этот - нет.

Ответить