제품 카테고리 재귀 삭제LOGIN

제품 카테고리 재귀 삭제

제품 카테고리 재귀 삭제

이전에도 해봤지만 조금 다릅니다. 상단 열을 삭제할 때 아래 카테고리도 삭제해야 합니다. 상단 열. cate 컨트롤러 controll

 public function del($id){
        $cata=D('cate');
        $childids=$cata->getchild($id);
        $childids=implode(',',$childids);
        if($cata->delete($childids)){
          $this->success('删除栏目成功!',U('index'));
        }else{
            $this->error('删除栏目失败!');
        }
    }

catemodel 모델 layer

 public function getchild($cateid){
        $data=$this->select();
        return $this->getchildids($data,$cateid);
    }
    public function getchildids($data,$cateid){
        static $res=array();
        $res[]=$cateid;
        foreach ($data as $k => $v) {
            if ($v['pid']==$cateid) {
                    $res[]=$v['id'];
                    $this->getchildids($data,$v['id']);

            }
        }
        return array_unique($res);
    }
let 's with rayers

$ childids = $ cata- & gt; getchild ($ id); getchild 메소드에.

public function getchild($cateid){
        $data=$this->select();
        return $this->getchildids($data,$cateid);
    }
여기서 getchild 메소드는 전달된 ID를 받은 후 모든 카테고리를 쿼리합니다. getchildids 메소드에 데이터와 ID를 반환합니다.
  public function getchildids($data,$cateid){
        static $res=array();
        $res[]=$cateid;
        foreach ($data as $k => $v) {
            if ($v['pid']==$cateid) {
                    $res[]=$v['id'];
                    $this->getchildids($data,$v['id']);

            }
        }
        return array_unique($res);
    }
$res=array();배열을 정의합니다. $res[]=$cateid; 빈 배열은 ID를 저장하는 데 사용됩니다.

foreach는 데이터를 탐색합니다. pid가 현재 ID와 같으면 해당 ID가 최상위임을 의미합니다. 빈 배열 $res[] 에 저장하고 재귀적으로 다시 호출하세요.

return array_unique($res); Eileen은 이 배열을 반환하고 array_unique는 중복 항목을 제거합니다.

$childids=implode(',',$childids); 배열을 문자열로 분할하여 사용할 수 있습니다.

최상위 열을 삭제하면 여러 열이 삭제된 것을 확인할 수 있습니다.
다음 섹션

<?php namespace Admin\Controller; use Think\Controller; class CateController extends CommonController { public function index(){ $cate=D('cate'); $cateres=$cate->catetree(); $this->assign('cateres',$cateres);//获取栏目树 $this->display(); } public function add(){ $cate=D('cate'); if (IS_POST) { if($cate->create()){ if ($cate->add()) { $this->success('添加商品分类成功',U('Cate/add')); }else{ $this->error('添加商品分类失败!'); } }else{ $this->error($cate->getError()); } return; } $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); } public function edit(){ $cate=D('cate'); if (IS_POST) { if($cate->create()){ if ($cate->save()!== false) { $this->success('修改商品分类成功',U('Cate/index')); }else{ $this->error('修改商品分类失败!'); } }else{ $this->error($cate->getError()); } return; } $cates=$cate->find(I('id')); $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->assign('cates',$cates); $this->display(); } public function del($id){ $cata=D('cate'); $childids=$cata->getchild($id); $childids=implode(',',$childids); if($cata->delete($childids)){ $this->success('删除栏目成功!',U('index')); }else{ $this->error('删除栏目失败!'); } } }
코스웨어