如何在 GridView 小部件中修改 Yii2 分页以显示第一页和最后一页


How modify Yii2 pagination in GridView widget to show first and last pages?

分页的默认视图是"1, 2, 3, ..., 10"

我需要将其转换为"(第一页),x,x,x,(

当前页面),x,x,x,(最后一页)"

我该怎么做?

<?= GridView::widget([
    'pager' => [
        'firstPageLabel' => 'First',
        'lastPageLabel'  => 'Last'
    ],
    ...
]) ?>
您需要

指定 LinkPager 的$firstPageLabel和$lastPageLabel属性(默认情况下它们是false的,这意味着这些链接不会显示)。您可以像这样将其传递给GridView

<?= GridView::widget([
    ...
    'pager' => [
        'firstPageLabel' => 'First',
        'lastPageLabel' => 'Last',
    ],
    ...
]) ?>

对于样式设置,还有两个附加属性:$firstPageCssClass 和 $lastPageCssClass。

请注意,您可以将其单独应用于LinkPager,而无需使用 GridView

注意 从 Yii2 版本 2.0.11 开始,您可以使用 config/main.php 文件中的容器定义为整个应用程序设置firstPageLabellastPageLabel默认值:

$config = [
    ....
    'container' => [
        'definitions' => [
            'yii'widgets'LinkPager' => [
                'firstPageLabel' => 'First',
                'lastPageLabel'  => 'Last'
            ]
        ]
    ]
];

在 http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#application-configurations 了解更多信息

如果您使用的是 Bootstrap 4.x.x

'container' => [
   'definitions' => [
        'yii'widgets'LinkPager::class => 'yii'bootstrap4'LinkPager::class,
        'yii'bootstrap4'LinkPager' => [
            'firstPageLabel' => 'First',
            'lastPageLabel'  => 'Last'
      ]
   ],
],