博主信息
博文 38
粉丝 0
评论 3
访问量 51028
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
tp5.1 无限极分类之删除子类
意外的博客
原创
2312人浏览过

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

在控制器中操作;

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

//前置操作;
    /*
    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;
	}


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学