Skip to main content

Yii2 Gridview bulk action using checkbox column. How to properly create checkbox column in gridview for bulk actions

To add a CheckboxColumn to the yii\grid\GridView, add it to the columns configuration as follows:
'columns' => [
    // ...
    [
        'class' => 'yii\grid\CheckboxColumn',
        // you may configure additional properties here
    ],
]


This is the view:
<?=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'],
'id',
],
]); ?>
<?= Html::endForm();?> 

This is the controller:
public function actionBulk(){
    $action=Yii::$app->request->post('action');
    $selection=(array)Yii::$app->request->post('selection');//typecasting
    foreach($selection as $id){
        $e=Evento::findOne((int)$id);//make a typecasting
        //do your stuff
        $e->save();
    }
    }

Popular posts from this blog

yii, recursive function to create category sub category hierarchy

Create this function in the category model file: ---------------------------------------------------------------------------------  <?php public function get_category_hr ( $cat_id , $selected_cat_id , $level_string ) { $select_str = '' ; if ( ! $level_string ) { $level_string = '' ; } if ( $cat_arr = $this -> findAll ( 'category_parent_id=' . $cat_id )) { foreach ( $cat_arr as $cat ) { $select_str .= "<option value= { $cat -> category_id } " ; if ( $selected_cat_id == $cat -> category_id ) $select_str .= ' selected' ; $select_str .= "> { $level_string }{ $cat -> category_name } </option>" ; $select_str .= $this -...

yii, Executing a SQL without calling a Model

yii, Executing a SQL without calling a Model <? $connection = Yii :: app () -> db ; $sql = "SELECT id,username FROM users" ; $command = $connection -> createCommand ( $sql ); $dataReader = $command -> query (); $rows = $dataReader -> readAll (); print_r ( $rows ); ?>