批量删除
yoyocmf 2019-01-07 10:11:40

参考:开发者工具 - 错误日志处理 

 

勾选指定行,批量删除

view视图文件:

PHP Code复制内容到剪贴板
  1. <?= GridView::widget([    
  2.     'dataProvider' => $dataProvider,    
  3.     'options' => ['id' => 'grid'],  //'class' => 'table table-bordered table-hover table-responsive',  
  4.     'columns' => [    
  5.         [    
  6.             'class' => 'yii\grid\CheckboxColumn',    
  7.             'name' => 'id',    
  8.         ],    
  9.         'id',    
  10.         ...    
  11.         ['class' => 'yii\grid\ActionColumn'],    
  12.     ],    
  13. ]); ?>    

 

 

添加一列删除checkbox框,再添加一个删除按钮:

PHP Code复制内容到剪贴板
  1. <?= Html::button('批量删除', ['class' => 'btn btn-danger deleteAll']) ?>  

 

在页面底部 添加js,传输的id要与删除的属性一致:

PHP Code复制内容到剪贴板
  1. <?php $this->beginBlock('js') ?>  
  2.     <script>  
  3.         $(".deleteAll").on("click"function () {  
  4.   
  5.             var keys = $("#grid").yiiGridView("getSelectedRows");  
  6.             if (!keys.length) {  
  7.                 layer.msg("请先勾选要删除的信息");  
  8.                 return false;  
  9.             }  
  10.   
  11.             layer.confirm('是否确定删除?', {  
  12.                 btn: ['确定''再想想'//可以无限个按钮  
  13.             }, function(index, layero){  
  14.                 //按钮【确定】的回调  
  15.   
  16.                 layer.load(2);  
  17.   
  18.                 $.post("<?=Url::to(['delete-select'])?>", {"id": keys},  
  19.                     function (ret) {  
  20.                         layer.closeAll("loading");  
  21.                         if (ret.errcode == 0) {  
  22.                             layer.msg(ret.errmsg, {  
  23.                                 time: 1000 //1秒后刷新  
  24.                             }, function(){  
  25.                                 document.location.reload();  
  26.                             });  
  27.                         } else {  
  28.                             layer.open({  
  29.                                 type: 1,  
  30.                                 content: ret.errmsg  
  31.                             });  
  32.                         }  
  33.                     }, "json");  
  34.   
  35.             }, function(index){  
  36.                 //按钮【再想想】的回调  
  37.   
  38.             });  
  39.   
  40.   
  41.         });  
  42.     </script>  
  43. <?php $this->endBlock() ?>  

 

 

delete-select方法在controller中作统一action:

PHP Code复制内容到剪贴板
  1. public function actions()  
  2. {  
  3.     return [  
  4.         'delete-select' => [  
  5.             'class' => 'backend\\actions\\Delete',  
  6.             'attribute' => 'id',                    // 根据什么字段属性删除  
  7.             'entity' => SystemLog::className()  
  8.         ],  
  9.     ];  
  10. }  

 

 


 

清空数据表,在控制器中添加:

PHP Code复制内容到剪贴板
  1. public function actions()  
  2. {  
  3.     return [  
  4.         // 删除指定ID  
  5.         'delete-select' => [  
  6.             'class' => 'backend\\actions\\Delete',  
  7.             'attribute' => 'id',                    // 根据什么字段属性删除  
  8.             'entity' => AdminLog::className()  
  9.         ],  
  10.         // 删除全部  
  11.         'delete-all' => [  
  12.             'class' => 'backend\\actions\\DeleteAll',  
  13.             'entity' => AdminLog::tableName()  
  14.         ],  
  15.     ];  
  16. }  

 

视图文件中,随便找个地方:

写法一:

PHP Code复制内容到剪贴板
  1. <?= Html::a('清空日志', Url::to(['delete-all']), [  
  2.     'class' => 'btn btn-danger',  
  3.     'data' => [  
  4.         'ajax' => 1,  
  5.         'confirm' => '是否确认清空,该操作不可恢复?',  
  6.         'method' => 'post',  
  7.         'refresh' => 1,  
  8.     ],  
  9. ]) ?>  

 

写法二:

PHP Code复制内容到剪贴板
  1. <?= Html::a('清空日志', Url::to(['delete-all']), [  
  2.     'class' => 'btn btn-danger',  
  3.     'data-ajax' => 1,  
  4.     'data-confirm' => '是否确认清空,该操作不可恢复?',  
  5.     'data-method' => 'post',  
  6.     'data-refresh' => 1,  
  7. ]) ?>  

 

 


 

清空指定数据表的指定项目的数据 

控制器:

PHP Code复制内容到剪贴板
  1. public function actions()  
  2. {  
  3.     return [  
  4.         // 当前项目下的部门  
  5.         'clear' => [  
  6.             'class' => 'backend\\actions\\DeleteByProject',  
  7.             'entity' => Department::className(),  
  8.         ]  
  9.     ];  
  10. }  

 

视图:

PHP Code复制内容到剪贴板
  1. <?= Html::a('清空部门信息', Url::to(['clear']), [  
  2.                     'class' => 'btn btn-danger',  
  3.                     'data-ajax' => 1,  
  4.                     'data-confirm' => '是否确认清空,该操作不可恢复?',  
  5.                     'data-method' => 'post',  
  6.                     'data-refresh' => 1,  
  7.                 ]) ?>  

 

 

 

 

 

 

 

 

 

 

本文来自于:http://www.yoyo88.cn/note/yoyocmf/399.html

Powered by yoyo苏ICP备15045725号