2015-10-15 5 views
4

Я хочу установить главную конфигурационную страницу paramSizeLimit в классе Pagination.Yii2 - как настроить основную конфигурацию pagination pageSizeLimit?

Пример: (/backend/config/main.php)

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

Но это не работает. Итак, как установить значения по умолчанию для всего сайта? Большое спасибо!

ответ

4

Вы можете использовать зависимость инъекции контейнер для этой цели.

Определение значения параметров по умолчанию в самонастройки разделе конфигурации:

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

Подробнее об этом в руководстве https://github.com/yiisoft/yii2/blob/master/docs/guide/concept-configurations.md

3

Сделайте свой собственный Pagination класс унаследованным от \yii\data\Pagination и в нем установите pageSizeLimit на любое значение, которое вы хотите. Затем используйте этот класс у поставщиков данных.

namespace app\components; 

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

Тогда в ваших поставщиков данных:

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