在yii2中通过gii代码生成创建分页


Create pagination from gii code generation in yii2

我使用Gii来生成我的代码。

现在,我想将视图中的表显示到分页中。因此,我像这样使用:

控制器

public function actionIndex() {
    $searchModel = new BarangSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
    $countDataProvider = clone $dataProvider;

    $paging = new 'yii'data'Pagination([
        'totalCount' => $countDataProvider->count(),
        'defaultPageSize' => 5
    ]);

    return $this->render('index', [
                'searchModel' => $searchModel,
                'dataProvider' => $dataProvider,
                'paging' => $paging
    ]);
}
<<p> 视图/strong>
<?php
Pjax::begin([
    'timeout' => 5000,
    'id' => 'pjax-gridview'
]);
?>
<?=
GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii'grid'SerialColumn'],
        'NO_URUT',
        'CONSIGNEE',
        'CONTAINER',
        'SIZE',
        'COIL_NO',
        'NET',
        'GROSS',
        'CONTRACT_NO',
        'KET',
        'NAMA_FILE',
        'TGL_UNSTUFF',
        'CREATED_AT',
        'UPDATED_AT',
        [
            'attribute' => 'CREATED_BY',
            'value' => function($data) {
                $username_created_by = $data->CREATED_BY;
                if ($user = User::findIdentity($data->CREATED_BY)):
                    $username_created_by = $user->username;
                endif;
            }
        ],
        'UPDATED_BY',
        ['class' => 'yii'grid'ActionColumn'],
    ],
]);
?>

它给了我这样的错误:

Calling unknown method: yii'data'ActiveDataProvider::count()

在gii2中实现分页的最佳实践是什么,我也想使用pjax来管理这个分页。

For the help。非常感谢

您可以这样设置dataProviderpageSize:

$dataProvider->pagination = [
    'pageSize' => 5,
];

如果在GridView之间有Pjax::beginPjax::end,那么分页将自动使用Pjax。

详情请参阅

谢谢Kostas,它现在工作了:

最终代码如下:

public function actionIndex() {
    $searchModel = new BarangSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
    $dataProvider->pagination = [
        'pageSize' => 2,
    ];
    return $this->render('index', [
                'searchModel' => $searchModel,
                'dataProvider' => $dataProvider,
    ]);
}