all(), [ 'autotranslate' => 'string', 'canClientChangeLanguage' => 'string', 'defaultLanguage' => 'required|string', 'languages' => 'required|array', 'languages.*' => 'required|string', 'datatable-language' => 'required|string', ]); if ($validator->fails()) { return redirect(route('admin.settings.index').'#language')->with('error', __('Language settings have not been updated!'))->withErrors($validator); } $values = [ //SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form) 'SETTINGS::LOCALE:DEFAULT' => 'defaultLanguage', 'SETTINGS::LOCALE:DYNAMIC' => 'autotranslate', 'SETTINGS::LOCALE:CLIENTS_CAN_CHANGE' => 'canClientChangeLanguage', 'SETTINGS::LOCALE:AVAILABLE' => 'languages', 'SETTINGS::LOCALE:DATATABLES' => 'datatable-language', ]; foreach ($values as $key => $value) { $param = $request->get($value); if (is_array($param)) { $param = implode(',', $param); } Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]); Cache::forget('setting'.':'.$key); Session::remove('locale'); } return redirect(route('admin.settings.index').'#language')->with('success', __('Language settings updated!')); } }