field("id,title,menu_index,menu_icon,menu_url,show_menu,father_id,order_id")->order($order)->select()->toArray(); $list = _generateListTree($menulist, 0, ['id', 'father_id']);; $result['list'] = $list; return $this->successResponse($result); } } /** * 更新菜单显示状态 */ public function updateShowMenu() { header('Content-Type:text/html;charset=utf-8'); if (!Request::isPost()) { return $this->errorResponse(lang('request_method_incorrect')); } $id = input('id'); if (!is_numeric($id)) { return $this->errorResponse('参数错误'); } $show_menu = input('show_menu'); $info = Db::name('admin_menu')->field('id')->where('id', $id)->find(); if (empty($info)) { return $this->errorResponse('信息不存在'); } if ($show_menu == '1') { $data['show_menu'] = 1; } else { $data['show_menu'] = 0; } $backval = Db::name('admin_menu')->where('id', $id)->save($data); if ($backval === FALSE) { return $this->errorResponse('更新失败'); } else { $this->delCache(); return $this->successResponse('更新成功'); } } /** * 保存菜单 * @return array|int[] */ public function saveMenu() { if (!Request::isPost()) { return $this->errorResponse(lang('request_method_incorrect')); } $id = input('id'); $data = Request::post(); $id = $data['id']; if (is_numeric($id)) { //更新数据 $validate = new \app\admin\validate\AdminMenu(); $result = $validate->check($data); if (!$result) { return $this->errorResponse($validate->getError()); } //////保存//////////// Db::name('admin_menu')->where('id', $id)->withoutField('id')->save($data); //////////////////////// $this->delCache(); $res['message'] = '菜单编辑成功'; return $this->successResponse($res); } else { unset($data['id']); $validate = new \app\admin\validate\AdminMenu(); $result = $validate->check($data); if (!$result) { return $this->errorResponse($validate->getError()); } ////////////////////// Db::startTrans(); try { $data['add_time'] = time(); $new_id = Db::name('admin_menu')->insertGetId($data); if ($new_id) { Db::name('admin_menu')->where('id', $new_id)->save(['order_id' => $new_id]); ///////执行成功,提交事务/////// Db::commit(); $this->delCache(); $res['message'] = '菜单添加成功'; return $this->successResponse($res); } else { //任一执行失败,执行回滚操作 Db::rollback(); return $this->errorResponse('菜单添加失败'); } } catch (\Exception $e) { // 回滚事务 Db::rollback(); return $this->errorResponse('菜单添加失败'); } } } /** * 清除缓存 * @return void */ private function delCache() { Cache::tag('admin_menu')->clear(); } }