carrentalservice/app/Http/Controllers/SettingsController.php
2026-02-19 22:05:20 +00:00

83 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Artisan;
class SettingsController extends Controller
{
public function index()
{
$settings = config('settings');
return view('settings.index', compact('settings'));
}
public function update(Request $request)
{
$request->validate([
'company_name' => 'required|string|max:100',
'company_tagline' => 'nullable|string|max:200',
'phone' => 'nullable|string|max:50',
'email' => 'nullable|email|max:100',
'address' => 'nullable|string|max:200',
]);
$config = [
'company_name' => $request->company_name,
'company_tagline' => $request->company_tagline ?? 'Car Rental Management System',
'logo' => config('settings.logo'),
'phone' => $request->phone ?? '',
'email' => $request->email ?? '',
'address' => $request->address ?? '',
];
$configContent = "<?php\n\nreturn [\n";
foreach ($config as $key => $value) {
$configContent .= " '$key' => " . var_export($value, true) . ",\n";
}
$configContent .= "];\n";
File::put(config_path('settings.php'), $configContent);
// Clear config cache
Artisan::call('config:clear');
return redirect()->route('settings.index')->with('success', 'Settings updated successfully!');
}
public function uploadLogo(Request $request)
{
$request->validate([
'logo' => 'required|image|mimes:png,jpg,jpeg,gif,svg|max:2048',
]);
$file = $request->file('logo');
$filename = 'logo.' . $file->getClientOriginalExtension();
// Delete old logo
$oldLogo = public_path(config('settings.logo'));
if (File::exists($oldLogo) && strpos(config('settings.logo'), 'logo.') !== false) {
File::delete($oldLogo);
}
$file->move(public_path('/uploads'), $filename);
// Update config
$config = config('settings');
$config['logo'] = '/uploads/' . $filename;
$configContent = "<?php\n\nreturn [\n";
foreach ($config as $key => $value) {
$configContent .= " '$key' => " . var_export($value, true) . ",\n";
}
$configContent .= "];\n";
File::put(config_path('settings.php'), $configContent);
Artisan::call('config:clear');
return redirect()->route('settings.index')->with('success', 'Logo uploaded successfully!');
}
}