无限极分类php删除子类,tp5.1 无限极分类之删除子类

删除无限极分类中的父类,子类也一并删除;

在控制器中操作;首先创建一个前置操作;也就是在删除操作之间先执行其他的操作(这里是先删除子类操作);

//前置操作;

/*

doson为需要执行的方法,

'only'=>'doDel'为只要执行doDel方法,

连在一起就是:在执行doDel方法之前,就先执行doson方法;

*/

protected $beforeActionList = [

'doson'  =>  ['only'=>'doDel']

];

//单个删除操作;

public function doDel(){

$id = Request::param('id');

$res = CateModel::destroy($id);

if($res){

$this->success('删除成功','cate/index');

}else{

$this->error('删除失败');

}

}

//下级分类删除;

public function doson(){

//获取当前id;

$cateid = Request::param('id');

//如果发现单个不能删除,那么将res进行判断有子类是才进行删除;

$res = CateModel::delnext($cateid);

// dump($res);die;//传递过来的是数组;主键d;

//将当前删除的id放入到子id集合中;

$res[] = $cateid;

// dump($res);die;

//删除栏目;

$result = CateModel::destroy($res);

}

在model中查找下一级;/**

&$result //静态数组集合;

$id //当前删除的id;

*/

//递归实现子类查询;

public static function delnext($cateid,&$result=[]){

//查询所有数据;

//这里也可以直接用条件查询到pid,就不用下面的if判断了;

//$data = CateModel::where(['pid'=>$cateid])->select()

$data = CateModel::select();

//将这些数据进行循环;

foreach($data as $k => $v){

//判断这些数据中pid等于当前id的;

if($v['pid'] == $cateid){

//有,将这些数据的id放入到数组中;

$result[] = $v['id'];

//然后在根据这些数据的id进行调用自己;

self::delnext($v['id'],$result);

}

}

return $result;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值