function infinate($arr, $level = 0, $access = null) { //无限极分类 $res = array(); for ($i = 0; $i < count($arr); $i++) { if (is_array($access)) { $arr[$i]['checked'] = in_array($arr[$i]['id'], $access); } else { $arr[$i]['checked'] = false; } if ($arr[$i]['pid'] == $level) { $arr[$i]['child'] = infinate($arr, $arr[$i]['id'], $access); array_push($res, $arr[$i]); } } return $res; }
public function permissionAction() { //权限管理 $did = intval($this->dispatcher->getParam(0)); if (!$did) { $this->view->disable(); echo "<script>alert('选择部门出错');history.back();</script>"; } if ($this->request->isPost()) { $this->modelsManager->executeQuery("delete from Backend\\Models\\Permission where did=:did:", array('did' => $did)); foreach ($_POST['app'] as $v) { $model = new Permission(); $model->setAid($v); $model->setDid($did); $model->create(); } } $perm = App::find('active=1'); $arr = array(); $acc = Permission::find('did=' . $did); if ($acc) { foreach ($acc as $v) { array_push($arr, $v->aid); } } $list = infinate($perm->toArray(), 0, $arr); $this->view->list = $list; }