有一个小部件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试过了。不显示三个记录,仅此而已
在阅读了所有可以阅读的地方之后,我意识到可以通过 DI 在配置中描述最小值
可惜它看起来像一根拐杖,因为
LinkPager你可以设置分页器的任何参数,但这个不是。