Yii2 - 如何设置主要配置参数分页 pageSizeLimit?

Yii2 - how to set main config param pagination pageSizeLimit?

我想在 class 分页中设置主要配置参数 pageSizeLimit。

示例:(/backend/config/main.php)

'pagination' => [
        'class' => 'yii\data\Pagination',
        [
            'pageSizeLimit' => [1, 1000],
        ]
    ],

但它不起作用。 那么,如何为整个站点设置默认值呢? 非常感谢!

使您自己的 Pagination class 继承自 \yii\data\Pagination 并在其中将 pageSizeLimit 设置为您想要的任何值。然后在您的数据提供程序中使用此 class。

namespace app\components;

class Pagination extends \yii\data\Pagination
{
    $defaultPageSize = 100;
    $pageSizeLimit = [1, 1000];
}

然后在您的数据提供者中:

$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'pagination' => [
        'class' => '\app\components\Pagination'
    ],
]);

您可以为此目的使用依赖注入容器。

在配置的引导部分定义默认参数值:

\Yii::$container->set('yii\data\Pagination', [
    'pageSizeLimit' => [1, 1000],
]);

在指南中阅读更多相关内容 https://github.com/yiisoft/yii2/blob/master/docs/guide/concept-configurations.md

从 2.0.11 开始,您可以通过依赖注入将其添加到 container 配置部分:

'container' => [
    'definitions' => [
        'yii\data\Pagination' => [
            'pageSize' => 5,
        ],
    ],
],