pluck('value', 'key');*/ $setting = Setting::all()->map(function ($s) { $s->key = str_replace('general.', '', $s->key); return $s; })->pluck('value', 'key'); $company_logo = $setting->pull('company_logo'); $setting['company_logo'] = Media::find($company_logo); $invoice_logo = $setting->pull('invoice_logo'); $setting['invoice_logo'] = Media::find($invoice_logo); $timezones = $this->getTimezones(); $accounts = Account::enabled()->pluck('name', 'id'); $currencies = Currency::enabled()->pluck('name', 'code'); $taxes = Tax::enabled()->pluck('name', 'id'); $payment_methods = Modules::getPaymentMethods(); $date_formats = [ 'd M Y' => '31 Dec 2017', 'd F Y' => '31 December 2017', 'd m Y' => '31 12 2017', 'm d Y' => '12 31 2017', 'Y m d' => '2017 12 31' ]; $date_separators = [ 'dash' => trans('settings.localisation.date.dash'), 'slash' => trans('settings.localisation.date.slash'), 'dot' => trans('settings.localisation.date.dot'), 'comma' => trans('settings.localisation.date.comma'), 'space' => trans('settings.localisation.date.space'), ]; $email_protocols = [ 'mail' => trans('settings.email.php'), 'smtp' => trans('settings.email.smtp.name'), 'sendmail' => trans('settings.email.sendmail'), 'log' => trans('settings.email.log') ]; return view('settings.settings.edit', compact( 'setting', 'timezones', 'accounts', 'currencies', 'taxes', 'payment_methods', 'date_formats', 'date_separators', 'email_protocols' )); } /** * Update the specified resource in storage. * * @param Request $request * * @return Response */ public function update(Request $request) { $fields = $request->all(); $company_id = $request->get('company_id'); if (empty($company_id)) { $company_id = session('company_id'); } $company = Company::find($company_id); $skip_keys = ['company_id', '_method', '_token']; $file_keys = ['company_logo', 'invoice_logo']; $companies = Company::all()->count(); foreach ($fields as $key => $value) { // Don't process unwanted keys if (in_array($key, $skip_keys)) { continue; } // Process file uploads if (in_array($key, $file_keys)) { // Upload attachment if ($request->file($key)) { $media = $this->getMedia($request->file($key), 'settings'); $company->attachMedia($media, $key); $value = $media->id; } // Prevent reset if (empty($value)) { continue; } } // Change default locale if only 1 company if (($key == 'default_locale') && ($companies == 1)) { // Update .env file Installer::updateEnv([ 'APP_LOCALE' => $value ]); } setting()->set('general.' . $key, $value); } // Save all settings setting()->save(); $message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]); flash($message)->success(); return redirect('settings/settings'); } }