true, 'showMenu' => true ]; $breadcrumbs = [['link' => '/admin/settings', 'name' => 'Settings'], ['name' => 'Edit']]; $settings = Setting::first(); return view('content.settings', [ 'pageConfigs' => $pageConfigs, 'breadcrumbs' => $breadcrumbs, 'settings' => $settings ]); } public function update(Request $request, Setting $setting) { $request->validate([ "version_code" => ['required'], "update_type" => ['required'], "update_message" => ['required'], "update_url" => ['nullable', 'url'], "ad_type" => ['required'], "show_ads" => ['required'], "show_ad_after" => ['required'], "developed_by_url" => ['nullable', 'url'], "onesignal_app_id" => ['nullable'], "one_signal_rest_api_key" => ['nullable'], "admob_android_banner" => ['nullable'], "admob_android_native" => ['nullable'], "admob_android_interstitial" => ['nullable'], "admob_ios_banner" => ['nullable'], "admob_ios_native" => ['nullable'], "admob_ios_interstitial" => ['nullable'], "facebook_android_banner" => ['nullable'], "facebook_android_native" => ['nullable'], "facebook_android_interstitial" => ['nullable'], "facebook_ios_banner" => ['nullable'], "facebook_ios_native" => ['nullable'], "facebook_ios_interstitial" => ['nullable'], "chat_gpt_api_secret" => ['nullable'], 'logo' => ['nullable', 'image'], 'favicon' => ['nullable'], 'privacy_url' => ['nullable'], ]); try { DB::beginTransaction(); $setting->version_code = $request->version_code; $setting->update_type = $request->update_type; $setting->update_message = $request->update_message; $setting->update_url = $request->update_url; $setting->ad_type = $request->ad_type; $setting->show_ads = $request->show_ads; $setting->show_ad_after = $request->show_ad_after; $setting->developed_by_url = $request->developed_by_url; $setting->onesignal_app_id = $request->onesignal_app_id; $setting->one_signal_rest_api_key = $request->one_signal_rest_api_key; $setting->admob_android_banner = $request->admob_android_banner; $setting->admob_android_native = $request->admob_android_native; $setting->admob_android_interstitial = $request->admob_android_interstitial; $setting->admob_ios_banner = $request->admob_ios_banner; $setting->admob_ios_native = $request->admob_ios_native; $setting->admob_ios_interstitial = $request->admob_ios_interstitial; $setting->facebook_android_banner = $request->facebook_android_banner; $setting->facebook_android_native = $request->facebook_android_native; $setting->facebook_android_interstitial = $request->facebook_android_interstitial; $setting->facebook_ios_banner = $request->facebook_ios_banner; $setting->facebook_ios_native = $request->facebook_ios_native; $setting->facebook_ios_interstitial = $request->facebook_ios_interstitial; $setting->chat_gpt_api_secret = $request->chat_gpt_api_secret; $setting->privacy_url = $request->privacy_url; if ($request->hasFile('logo')) { $prefix = 'logo'; if (!empty($setting->logo)) { $bannerImagePath = $this->updateFile($request->logo, $setting->logo, $prefix, false); } else { $bannerImagePath = $this->uploadFile($request->logo, $prefix, false); } $setting->logo = $bannerImagePath; } if ($request->hasFile('favicon')) { $prefix = 'favicon'; if (!empty($setting->favicon)) { $bannerImagePath = $this->updateFile($request->favicon, $setting->favicon, $prefix, false); } else { $bannerImagePath = $this->uploadFile($request->favicon, $prefix, false); } $setting->favicon = $bannerImagePath; } $setting->update(); DB::commit(); return redirect()->back()->with([ 'success' => "Settings updated successfully" ]); } catch (\Throwable $exception) { DB::rollBack(); return redirect()->back()->with([ 'error' => $exception->getMessage() ]); } } }