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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
PHP4实际应用经验篇(8)
Oct 09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
解析coreseek for sphinx的使用
Jun 21 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
PHP实现简单数字分页效果
Jul 26 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
laravel批量生成假数据的方法
Oct 09 PHP
Laravel框架源码解析之反射的使用详解
May 14 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
php 定界符格式引起的错误
2011/05/24 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP数组相关函数汇总
2015/03/24 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
Javascript 自定义类型方法小结
2010/03/02 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
angular多语言配置详解
2019/05/16 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python中设置变量访问权限的方法
2015/04/27 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
当当网软件测试笔试题
2015/11/24 面试题
母亲节演讲稿范文
2014/01/02 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
什么是就业协议书
2014/04/17 职场文书
新闻报道策划方案
2014/06/11 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书