public function delsoncate()
{
$cateid=input('id');//接收要删除栏目的ID
$cate = new CateModel;
$cateLst=$cate->catetree();//获取所有栏目的列表
$cateids=input('id');
foreach ($cateLst as $k => $v) {
if($v['pid'] !== (int)$cateid){
//如果遍历的条目中,没有栏目的所属栏目为传输过来的ID,则说明其为最底层栏目
$artres=db('article')->where('cateid',$cateid)->select();
//如果是最底层的栏目则查询,如果文章的栏目ID等于要删除的ID,则提示栏目下还有文章
if($artres){
$this->error('本栏目下还有文章,请先删除所有文章再删除栏目');
}
}else{
//如果不是最底层的栏目,则查询其最底层的栏目,并查询栏目中是否存在文章
//思路:遍历数组,如果有栏目是其子栏目,则存下来,下次再用这个数组的进行查询,直到查询为空
foreach ($cateLst as $k => $v) {
if((int)$cateid == $v['pid']){
$cateid=$v['id'];
// var_dump($cateid);
}else{
$artres=db('article')->where('cateid',$cateid)->select();
//如果是最底层的栏目则查询,如果文章的栏目ID等于要删除的ID,则提示栏目下还有文章
if($artres){
$this->error('本栏目下还有文章,请先删除所有文章再删除栏目');
}
}
}
}
}
$sonid=$cate->getchilrenid($cateids); //遍历删除栏目
db('cate')->delete($sonid);
}
//catetree方法
public function catetree()
{
$cateres=$this->order('id asc')->select();
return $this->sort($cateres);
}
thinkphp5.0 遍历删除子分类,最底层分类下有内容则报错
最新推荐文章于 2021-03-10 17:03:44 发布