get(); return jsonResponse($permissions); } public function create(Request $request) { $name = trim($request->post('name', '')); $code = trim($request->post('code', '')); $parent_id = (int)$request->post('parent_id', 0); $type = (int)$request->post('type', 1); // 1菜单 2按钮 $sort = (int)$request->post('sort', 0); if (!$name || !$code) { return jsonResponse(null, '名称和代码必填', 400); } if (Permission::where('code', $code)->exists()) { return jsonResponse(null, '代码已存在', 400); } $permission = Permission::create([ 'name' => $name, 'code' => $code, 'parent_id' => $parent_id, 'type' => $type, 'sort' => $sort, ]); return jsonResponse($permission, '创建成功'); } public function update(Request $request) { $id = (int)$request->post('id'); $permission = Permission::find($id); if (!$permission) { return jsonResponse(null, '权限不存在', 404); } $name = trim($request->post('name', '')); $code = trim($request->post('code', '')); if ($name) $permission->name = $name; if ($code && $code !== $permission->code) { if (Permission::where('code', $code)->exists()) { return jsonResponse(null, '代码已存在', 400); } $permission->code = $code; } if ($request->post('parent_id') !== null) { $permission->parent_id = (int)$request->post('parent_id'); } if ($request->post('type') !== null) { $permission->type = (int)$request->post('type'); } if ($request->post('sort') !== null) { $permission->sort = (int)$request->post('sort'); } $permission->save(); return jsonResponse(null, '更新成功'); } public function delete(Request $request) { $id = (int)$request->post('id'); $permission = Permission::find($id); if (!$permission) { return jsonResponse(null, '权限不存在', 404); } if (Permission::where('parent_id', $id)->exists()) { return jsonResponse(null, '存在子权限,不可删除', 400); } $permission->delete(); // Remove from role_permissions \Illuminate\Database\Capsule\Manager::table('role_permissions')->where('permission_id', $id)->delete(); return jsonResponse(null, '删除成功'); } }