$route) { $array = json_decode($route->match, true); if (is_array($array)) $routes[$k]['match'] = $array; } // TODO: remove on 1.8.0 return [ 'data' => $routes ]; } public function save(Request $request) { $params = $request->validate([ 'remarks' => 'required', 'match' => 'required|array', 'action' => 'required|in:block,dns', 'action_value' => 'nullable' ], [ 'remarks.required' => '备注不能为空', 'match.required' => '匹配值不能为空', 'action.required' => '动作类型不能为空', 'action.in' => '动作类型参数有误' ]); $params['match'] = array_filter($params['match']); // TODO: remove on 1.8.0 $params['match'] = json_encode($params['match']); // TODO: remove on 1.8.0 if ($request->input('id')) { try { $route = ServerRoute::find($request->input('id')); $route->update($params); return [ 'data' => true ]; } catch (\Exception $e) { abort(500, '保存失败'); } } if (!ServerRoute::create($params)) abort(500, '创建失败'); return [ 'data' => true ]; } public function drop(Request $request) { $route = ServerRoute::find($request->input('id')); if (!$route) abort(500, '路由不存在'); if (!$route->delete()) abort(500, '删除失败'); return [ 'data' => true ]; } }