orderBy('group')->orderBy('key')->get()); } #[Apidoc\Title('保存配置')] #[Apidoc\Url('/admin/settings')] #[Apidoc\Method('PUT')] #[Apidoc\RouteMiddleware(['permission:settings'])] public function update(Request $request): JsonResponse { $data = $request->validate([ 'settings' => ['required', 'array'], ]); foreach ($data['settings'] as $key => $value) { SystemSetting::updateOrCreate(['key' => $key], [ 'value' => $value, 'group' => str_contains((string) $key, '.') ? explode('.', (string) $key)[0] : 'general', ]); } OperationLog::create([ 'user_id' => $request->user()->id, 'action' => 'settings.updated', 'target_type' => 'system', 'target_id' => null, 'ip' => $request->ip(), 'payload' => ['keys' => array_keys($data['settings'])], ]); return ApiResponse::success(SystemSetting::query()->get(), '配置已保存'); } }