toArray(); $fields = implode(',', $fields); $validate = ['field' => ['required', 'string', "in:{$fields}"]]; request()->validate($validate); $field = request()->input('field'); $config = Config::where('field', $field)->first(); $validate = array_merge($validate, $config->getRule()); $params = request()->validate($validate); $config->val = $params['val']; $config->save(); DB::commit(); } catch (ValidationException $e) { DB::rollBack(); return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first()); } catch (Exception $e) { DB::rollBack(); return $this->error(HttpStatus::CUSTOM_ERROR, $e->getMessage()); } return $this->success(); } function index() { try { request()->validate([ 'page' => ['nullable', 'integer', 'min:1'], 'limit' => ['nullable', 'integer', 'min:1'], 'field' => ['nullable', 'string'], ]); $page = request()->input('page', 1); $limit = request()->input('limit', 15); $field = request()->input('field', ''); $query = Config::query(); $query = $query->where('group_id', Config::GROUP_BASIC); if (!empty($field)) $query = $query->where($field, $field); $data['total'] = $query->count(); $data['data'] = $query->forPage($page, $limit)->get(); } catch (ValidationException $e) { return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first()); } catch (Exception $e) { return $this->error(HttpStatus::CUSTOM_ERROR, $e->getMessage()); } return $this->success($data); } }