gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ThinkPHP删除栏目(实现批量删除栏目)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.在模型中对删除前构造函数的修改 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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删除栏目(实现批量删除栏目)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于ThinkPHP删除栏目(实现批量删除栏目)的文章就讲到这里了,如果你想了解更多关于ThinkPHP删除栏目(实现批量删除栏目)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com