Yii2如何传递当前正在显示的行数以进行查看

时间:2017-02-02 20:20:23

标签: listview yii2

我在ListView小部件中当前显示的行数存在问题。我不知道如何将它传递给itemView。

我的代码:

 $count = $dataProvider->getCount();

    ListView::widget([
        'dataProvider' => $dataProvider,        
        'itemView' => function ($model, $key, $index, $widget, $count) {
            return $this->render('_item', [
                'model' => $model,
                'index' => $index,
                'count' => $count,                
            ]);
        },
        'pager' => Helper::getPagerSettings(),
    ]);

它给了我这个错误:

  

缺少yii \ base \ View :: {closure}()

的参数5

但是当我更改$ count = 0时,它成功将0传递给itemView

1 个答案:

答案 0 :(得分:2)

要在ListView中设置每页的项目数,请配置分页,如:

ListView::widget([
    //...
    'pagination' => [
        'pageSize' => 10,
    ],
]);

您正在使用闭包来设置itemView - 没关系,但签名是

function ($model, $key, $index, $widget)

所以没有$count。如果你想传递额外的参数,那就这样做(它适用于每个闭包类型函数):

function ($model, $key, $index, $widget) use ($count) {
    //...
}

我不确定您在$count内使用itemView的内容,但限制每页使用的项目数pagination