ThinkPHP删除栏目(实现批量删除栏目)


Posted in PHP onJune 21, 2017

前段时间发表了一个删除栏目的随笔,当时实现的功能是删除一条信息,这次来实现一下批量删除栏目。

我们需要达到的是这样一个效果:

ThinkPHP删除栏目(实现批量删除栏目)

选中批量删除按钮后可以选中所有该页面的栏目,这个是前端页面的实现,在这里就不多说了,我们直接进入正题:批量删除的功能。

1.前端页面这里也有一个小小的点,就是选择框的name值应给给他赋值为一个id的数组,value值为该栏目的id。

2.我们在控制器中单独写一个批量删除的方法

public function privilege_bdel(){
  $ids = I('ids');
  $pri = D('privilege');
  $ids = implode(',', $ids);
  if($ids){
   if($pri->delete($ids)){
    $this->success('批量删除栏目成功!',U('Privilege/privilege_lst'));
   }else{
    $this->error('批量删除栏目失败,请重试!');
   }
  }else{
   $this->error('未选中任何内容,请重试!');
  }
 }

这里要将传过来的id数组转化为以逗号分隔的字符串如:1,2,3,这样可以直接进行delete操作。

ThinkPHP删除栏目(实现批量删除栏目)

这就是我们dump出来options的结果,这条也是我们用来判断删除时是单个删除还是批量删除的依据,如果options[where][id]是一个数组的话,则说明进行的是批量删除,否则就是单个删除。

3.在模型中对删除前构造函数的修改

public function _before_delete($options){
  //批量删除
  if(is_array($options['where']['id'])){
   $arr = explode(',', $options['where']['id'][1]);
   $sonpri = array();
   foreach ($arr as $k => $v) {
    $sonpri2 = $this->childid($v);
    $sonpri = array_merge($sonpri,$sonpri2);
   }
   $sonpri = array_unique($sonpri);
   $chilrenids = implode(',', $sonpri);
  }else{//单个删除
   $chilrenids =$this->childid($options['where']['id']);
   $chilrenids = implode(',', $chilrenids);
  }
  if($chilrenids){
   $this->execute("delete from ed_privilege where id in($chilrenids)");
  }
 }

在这里我们写出批量删除的代码(单个删除之前已经写过,不再提)

将传过来的字符串转化为不带逗号的数组形式存在$arr中,建立一个空数组$sonpri,然后foreach遍历,这里先查找出所有的子栏目id(会用childid函数),存入$sonpri2数组中 ,再将$sonpri和$sonpri2合并为一个数组,使用array_merge()函数完成,这样我们才算是获取到了所有子栏目的id,但是我们所获取的id组中,会出现许多重复的id,所以这里我们还要进行去重的操作,使用array_unique()函数。最后再进行一次数组的拆分,得到id字符串,再进行删除就大功告成了。

以上这篇ThinkPHP删除栏目(实现批量删除栏目)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
如何利用php+mysql保存和输出文件
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
php基于SQLite实现的分页功能示例
Jun 21 #PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 #PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 #PHP
老生常谈PHP面向对象之标识映射
Jun 21 #PHP
PHP封装的PDO数据库操作类实例
Jun 21 #PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 #PHP
php 猴子摘桃的算法
Jun 20 #PHP
You might like
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
javascript Base类 包含基本的方法
2009/07/22 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python中的自省(反射)详解
2015/06/02 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
详解Python中第三方库Faker
2020/09/25 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
好学生评语大全
2014/05/05 职场文书
出纳试用期自我评价
2015/03/10 职场文书
合同审查法律意见书
2015/06/04 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python