Php 从yii2中的gii代码生成创建分页

Php 从yii2中的gii代码生成创建分页,php,pagination,yii2,Php,Pagination,Yii2,我已经使用Gii生成了我的代码 现在,我想将视图中的表显示为分页。 所以,我用这样的方式: Calling unknown method: yii\data\ActiveDataProvider::count() public function actionIndex() { $searchModel = new BarangSearch(); $dataProvider = $searchModel->search(Yii::$app->request->q

我已经使用Gii生成了我的代码

现在,我想将视图中的表显示为分页。 所以,我用这样的方式:

Calling unknown method: yii\data\ActiveDataProvider::count()
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,
    ]);
}
控制器

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
    ]);
}
查看

<?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'],
    ],
]);
?>
在gii2中实现分页的最佳实践是什么,我也想使用pjax来管理这种分页


谢谢你的帮助。非常感谢

您可以如下设置
数据提供程序的
页面大小

$dataProvider->pagination = [
    'pageSize' => 5,
];
如果在
GridView
之间有
Pjax::begin
Pjax::end
,则分页将自动使用Pjax


有关更多详细信息,请参见。

您可以如下设置
数据提供程序的
页面大小

$dataProvider->pagination = [
    'pageSize' => 5,
];
如果在
GridView
之间有
Pjax::begin
Pjax::end
,则分页将自动使用Pjax


有关更多详细信息,请参见。

谢谢Kostas,它现在可以工作了:

最后的代码如下:

Calling unknown method: yii\data\ActiveDataProvider::count()
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,
    ]);
}

谢谢Kostas,它现在可以工作了:

最后的代码如下:

Calling unknown method: yii\data\ActiveDataProvider::count()
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,
    ]);
}

尝试
getTotalCount()
而不是
count()
在索引中如何创建:只创建分页索引,而不是分页本身。尝试
getTotalCount()
而不是
count()
在索引中如何创建:只创建分页索引,而不是分页本身。谢谢,但是我应该把:$dataProvider->pagination=['pageSize'=>5,];紧随其后:$dataProvider=$searchModel->search(Yii::$app->request->queryParams);谢谢,但是我应该放在哪里:$dataProvider->pagination=['pageSize'=>5,];紧随其后:$dataProvider=$searchModel->search(Yii::$app->request->queryParams);是的,就是这样。考虑一下卡提克的GRIDVIEW。你可以在这里找到:是的,就是这个。考虑一下卡提克的GRIDVIEW。你可以在这里找到它: