如何获取 CheckboxColumn Gridview 中选定的数据/项目行 - Yii2

Gem*_*cen 5 php gridview yii2 yii2-advanced-app

我在使用 checkboxColumn 获取所有选定值/数据 Yii2 Gridview 时遇到问题。

我只能使用以下代码获取网格的值之一

         'class' => 'yii\grid\CheckboxColumn',
         'checkboxOptions' => function($model, $key, $index, $widget) {
            return ['value' => $model['item_id'] ];
         },
Run Code Online (Sandbox Code Playgroud)

需要一些关于如何获取网格中的所有值的建议......

这是我的代码代码片段控制器/视图:

控制器:

public function actionBulk(){
   $action=Yii::$app->request->post('action');
   $selection=(array)Yii::$app->request->post('selection');
   print_r($selection);
}
Run Code Online (Sandbox Code Playgroud)

看法:

<?=Html::beginForm(['transjournal/bulk'],'post');?>

<?=GridView::widget([
   'dataProvider' => $dataProvider,
    'bordered'=>true,
    'striped'=>true,
    'condensed'=>true,
    'hover'=>true,
    'export' => false,
    'showOnEmpty' => false,
    'panel'=>[
            'after'=>Html::submitButton('<i class="glyphicon glyphicon-plus"></i> Posted', ['class' => 'btn btn-success']),
    ],
    'columns' => [
    [
        'class' => 'yii\grid\CheckboxColumn',
        'checkboxOptions' => function($model, $key, $index, $widget) {
            return ['value' => $model['item_id'] ];
         },
    ],
        'item_id',
        'description',
    ],
  ]);
?>

<?= Html::endForm();?> 
Run Code Online (Sandbox Code Playgroud)

这是我的附件:

这是网格视图

在此输入图像描述

这是 GridView 中的结果(选定的数据仅返回 item_id)

在此输入图像描述

如何同时返回 item_id 和描述?

Muh*_*zad 3

你的代码有问题'checkboxOptions' =>,可以删除吗?

<?=Html::beginForm(['controller/bulk'],'post');?>

<?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])?>

<?=Html::submitButton('Send', ['class' => 'btn btn-info',]);?>

<?=GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
       ['class' => 'yii\grid\CheckboxColumn'],
        ...
     ],
  ]); ?>

<?= Html::endForm();?> 
Run Code Online (Sandbox Code Playgroud)

在控制器中:

 public function actionBulk(){
       $action=Yii::$app->request->post('action');
       $selection=(array)Yii::$app->request->post('selection');//typecasting
       foreach($selection as $id){
        $model = Post::findOne((int)$id);//make a typecasting
        //do your stuff
        $model->save();
        // or delete
      }
    }
Run Code Online (Sandbox Code Playgroud)