Ejemplo n.º 1
0
function _deleteNode($id, $db)
{
    //循环找出$node['id']的所有pid节点 条件 pid = id
    $childNode = $db->where(array('pid' => $id))->select();
    if (!empty($childNode)) {
        foreach ($childNode as $v) {
            _deleteNode($v['id'], $db);
        }
    }
    $bool = $db->where(array('id' => $id))->delete();
    return $bool;
}
Ejemplo n.º 2
0
/**
 * 删除节点与此节点的所有子节点
 * 并删除赋予此节点的所有权限
 */
function _deleteNode($node, $db)
{
    //循环找出$node['id']的所有pid节点 条件 pid = id
    foreach ($node as $v) {
        $childNode = $db->where(array('pid' => $v['id']))->select();
        if ($childNode) {
            _deleteNode($childNode, $db);
        }
        $db->where(array('id' => $v['id']))->delete();
        if (M('access')->where(array('node_id' => $v['id']))->select()) {
            M('access')->where(array('node_id' => $v['id']))->delete();
        }
    }
    return true;
}
Ejemplo n.º 3
0
 public function deleteCateAction()
 {
     if (!$_GET['id']) {
         $this->error('页面不存在', U('index'));
     }
     $id = $_GET['id'];
     $db = M('cate');
     $bool = _deleteNode($id, $db);
     if (!$bool) {
         $this->error('删除失败', U('index'));
     }
     $this->success('删除成功', U('index'));
 }
Ejemplo n.º 4
0
 public function deleteNodeAction()
 {
     if (!IS_AJAX) {
         return;
     }
     $id = I('id', '', 'intval');
     $db = M('node');
     //$true = M('node')->where(array('id' => $id))->delete();
     //取出返回的node->id;若删除此节点则删除此节点下的所有子节点==>递归。。。
     $node = $db->where(array('id' => $id))->select();
     $true = _deleteNode($node, $db);
     //echo $true;die;
     if ($true) {
         redirect(U('Admin/Rbac/Node'));
         die;
     } else {
         $this->error();
     }
 }